* text improvements: tooltips, short cuts...
* using base class ReGuiApplication: multi language support
* removing base class ReObserver: not used
<x>0</x>
<y>0</y>
<width>423</width>
- <height>289</height>
+ <height>305</height>
</rect>
</property>
<property name="windowTitle">
- <string>Dialog</string>
+ <string>About the Program</string>
</property>
<property name="modal">
<bool>true</bool>
</property>
- <widget class="QTextEdit" name="textEdit">
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>20</y>
- <width>381</width>
- <height>221</height>
- </rect>
- </property>
- <property name="readOnly">
- <bool>true</bool>
- </property>
- <property name="html">
- <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QTextEdit" name="textEdit">
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="html">
+ <string><!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></string>
- </property>
- <property name="acceptRichText">
- <bool>false</bool>
- </property>
- <property name="textInteractionFlags">
- <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
- </property>
- </widget>
- <widget class="QWidget" name="">
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>250</y>
- <width>381</width>
- <height>29</height>
- </rect>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Version:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="labelVersion">
- <property name="text">
- <string>2015.05.00</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QPushButton" name="pushButtonOK">
- <property name="text">
- <string>&OK</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
+</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></string>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Version:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="labelVersion">
+ <property name="text">
+ <string notr="true">2015.05.00</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButtonOK">
+ <property name="text">
+ <string>&OK</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
</widget>
<resources/>
<connections>
</rect>
</property>
<property name="windowTitle">
- <string>Dialog</string>
+ <string>Options</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
</attribute>
<row>
<property name="text">
- <string>Neue Zeile</string>
+ <string notr="true">Editor</string>
</property>
</row>
<row>
<property name="text">
- <string>edit</string>
+ <string notr="true">Shell</string>
</property>
</row>
<column>
</item>
<item row="0" column="2">
<property name="text">
- <string>/usr/bin/kate</string>
+ <string notr="true">/usr/bin/kate</string>
</property>
</item>
<item row="0" column="3">
<property name="text">
- <string>${full}</string>
+ <string notr="true">${full}</string>
</property>
</item>
<item row="0" column="4">
</item>
<item row="1" column="2">
<property name="text">
- <string>/usr/bin/bash</string>
+ <string notr="true">/usr/bin/bash</string>
</property>
</item>
<item row="1" column="3">
<property name="text">
- <string/>
+ <string notr="true"/>
</property>
</item>
</widget>
</size>
</property>
<property name="text">
- <string>...</string>
+ <string notr="true">...</string>
</property>
<property name="icon">
- <iconset resource="../reditor/editor.qrc">
+ <iconset resource="refind.qrc">
<normaloff>:/main/icons/layout_add.png</normaloff>:/main/icons/layout_add.png</iconset>
</property>
</widget>
</item>
</layout>
</widget>
- <resources/>
+ <resources>
+ <include location="refind.qrc"/>
+ </resources>
<connections>
<connection>
<sender>buttonBox</sender>
* 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))));
}
/**
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.
*
TextFinder* m_textFinder;
QTableWidget* m_table;
Statistics m_statistics;
- ReObserver* m_observer;
ReGuiQueue* m_guiQueue;
int m_maxHits;
bool m_stop;
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()));
#include <QProcess>
#include <QMessageBox>
-const QString VERSION("2015.12.24");
+const QString VERSION("2016.02.20");
inline QString addEsc(const QString& text){
QString rc = 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),
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();
}
/**
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.
*/
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.
*
}
}
-/**
- * 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.
*
}
}
/**
- * 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();
}
/**
*
* @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.
ui->tableWidget->setRowCount(0);
m_statistics.clear();
}
- finder.setObserver(this);
finder.setGuiQueue(&this->m_guiQueue);
finder.setBaseDir(comboText(ui->comboBoxDirectory));
finder.setTable(ui->tableWidget);
}
}
+/**
+ * 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);
msgBox.exec();
}
-/**
- * Replaces the placeholders valid in header and footer.
- *
- * @param text the text to convert
- * @return <code>text</code> with the esc sequences replaced
- */
-QString MainWindow::replaceGlobalPlaceholders(QComboBox* combo,
-QMap <QString, QString>& 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("");
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 <code>text</code> with the esc sequences replaced
+ */
+QString MainWindow::replaceGlobalPlaceholders(QComboBox* combo,
+QMap <QString, QString>& 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.
*/
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.
*/
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;
}
/**
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);
- }
-}
-}
-
};
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:
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 <QString, QString>& hash);
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 <QString, QString>& placeholders);
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;
ReLogger* m_logger;
FileFinder* m_finder;
ReGuiQueue m_guiQueue;
- QTimer* m_guiTimer;
+ QString m_startDir;
};
#endif // MAINWINDOW_HPP
<normalon>:/main/icons/action_go.png</normalon>:/main/icons/action_go.gif</iconset>
</property>
<property name="shortcut">
- <string>Ctrl+F</string>
+ <string notr="true">Ctrl+F</string>
</property>
<property name="autoDefault">
<bool>true</bool>
</item>
<item row="1" column="3">
<widget class="QCheckBox" name="checkBoxFiles">
+ <property name="toolTip">
+ <string>Normal files will be found</string>
+ </property>
<property name="text">
<string>Files</string>
</property>
<height>16777215</height>
</size>
</property>
+ <property name="toolTip">
+ <string>Case insensitiv text search</string>
+ </property>
<property name="text">
<string>Ignore case</string>
</property>
<height>0</height>
</size>
</property>
+ <property name="toolTip">
+ <string>Only files containing this text (or text pattern) will be found</string>
+ </property>
<property name="editable">
<bool>true</bool>
</property>
<height>16777215</height>
</size>
</property>
+ <property name="toolTip">
+ <string>Directories will be found</string>
+ </property>
<property name="text">
<string>Dirs</string>
</property>
<height>16777215</height>
</size>
</property>
+ <property name="toolTip">
+ <string>Text pattern is a regular expression (Perl syntax)</string>
+ </property>
<property name="text">
<string>Regular expr.</string>
</property>
<height>16777215</height>
</size>
</property>
+ <property name="toolTip">
+ <string>Symbolic links will be found</string>
+ </property>
<property name="text">
<string>Links</string>
</property>
<height>16777215</height>
</size>
</property>
+ <property name="toolTip">
+ <string>Files containing ASCII NUL will be found too</string>
+ </property>
<property name="text">
<string>Binary files</string>
</property>
</item>
<item row="3" column="6">
<widget class="QComboBox" name="comboBoxMaxHits">
+ <property name="toolTip">
+ <string>If this count of hits is reachted the search stops</string>
+ </property>
<property name="editable">
<bool>true</bool>
</property>
</size>
</property>
<property name="toolTip">
- <string>Change to the parent directory</string>
+ <string>Go to the parent directory</string>
</property>
<property name="text">
- <string>&Up</string>
+ <string notr="true">^</string>
</property>
<property name="icon">
<iconset resource="refind.qrc">
<string>Select directory by a dialog box</string>
</property>
<property name="text">
- <string/>
+ <string notr="true">...</string>
</property>
<property name="icon">
<iconset resource="refind.qrc">
<item row="3" column="1" colspan="2">
<widget class="QPushButton" name="pushButtonSearch2">
<property name="text">
- <string>&Run search</string>
+ <string notr="true">&Run search</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/main/icons/action_go.gif</normaloff>
<normalon>:/main/icons/action_go.png</normalon>:/main/icons/action_go.gif</iconset>
</property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+F</string>
+ </property>
</widget>
</item>
<item row="3" column="3" colspan="2">
<normaloff>:/main/icons/stop.png</normaloff>:/main/icons/stop.png</iconset>
</property>
<property name="shortcut">
- <string notr="true">Ctrl+T</string>
+ <string notr="true">Pause</string>
</property>
</widget>
</item>
<normaloff>:/main/icons/database_save.png</normaloff>:/main/icons/database_save.png</iconset>
</property>
<property name="shortcut">
- <string>Alt+E</string>
+ <string notr="true">Ctrl+E</string>
</property>
</widget>
</item>
<property name="text">
<string>...</string>
</property>
+ <property name="shortcut">
+ <string notr="true"/>
+ </property>
</widget>
</item>
<item row="3" column="1" colspan="3">
<property name="text">
<string>...</string>
</property>
+ <property name="shortcut">
+ <string notr="true"/>
+ </property>
</widget>
</item>
<item row="2" column="0">
<property name="text">
<string>...</string>
</property>
+ <property name="shortcut">
+ <string notr="true"/>
+ </property>
</widget>
</item>
<item row="0" column="0">
<iconset resource="refind.qrc">
<normaloff>:/main/icons/eye.png</normaloff>:/main/icons/eye.png</iconset>
</property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+Shift+V</string>
+ </property>
</widget>
</item>
<item row="4" column="1" colspan="3">
<bool>true</bool>
</property>
<property name="currentText">
- <string>refind.result.txt</string>
+ <string notr="true">refind.result.txt</string>
</property>
</widget>
</item>
<property name="text">
<string>...</string>
</property>
+ <property name="shortcut">
+ <string notr="true"/>
+ </property>
</widget>
</item>
</layout>
<string>Size (MByte)</string>
</property>
<property name="textAlignment">
- <set>AlignRight|AlignBottom</set>
+ <set>AlignTrailing|AlignBottom</set>
</property>
</column>
<column>
<string>Exits the program</string>
</property>
<property name="shortcut">
- <string>Ctrl+X</string>
+ <string notr="true">Ctrl+Shift+X</string>
</property>
</action>
<action name="actionSearch">
<string>Search the files with the given properties</string>
</property>
<property name="shortcut">
- <string>Ctrl+R</string>
+ <string notr="true">Ctrl+R</string>
</property>
</action>
<action name="actionAbout">
<string>&About</string>
</property>
<property name="shortcut">
- <string>Ctrl+Shift+A</string>
+ <string notr="true">Ctrl+Shift+A</string>
</property>
</action>
<action name="actionExport">
<string>&Export</string>
</property>
<property name="shortcut">
- <string>Ctrl+E</string>
+ <string notr="true">Ctrl+E</string>
</property>
</action>
<action name="actionUp">
<string>Change to the parent directory</string>
</property>
<property name="shortcut">
- <string>Ctrl+U</string>
+ <string notr="true">Ctrl+U</string>
</property>
</action>
<action name="actionSelectDirectory">
<string>Select directory with a dialog</string>
</property>
<property name="shortcut">
- <string>Ctrl+D</string>
+ <string notr="true">Ctrl+D</string>
</property>
</action>
<action name="actionGetAbsPath">
<string>Puts the absolute path of the selected file into the clipboard</string>
</property>
<property name="shortcut">
- <string>Ctrl+Shift+P</string>
+ <string notr="true">Ctrl+Shift+P</string>
</property>
</action>
<action name="actionGetFullName">
<string>&full name to clipboard</string>
</property>
<property name="shortcut">
- <string>Ctrl+N</string>
+ <string notr="true">Ctrl+N</string>
</property>
</action>
<action name="actionGetBaseDirectory">
<string>Puts the base directory into the clipboard</string>
</property>
<property name="shortcut">
- <string>Ctrl+B</string>
+ <string notr="true">Ctrl+B</string>
</property>
</action>
<action name="actionReset">
<string>Sets the file filter properties to the default</string>
</property>
<property name="shortcut">
- <string>Ctrl+Shift+R</string>
+ <string notr="true">Ctrl+Shift+R</string>
</property>
</action>
<action name="actionSaveProgramState">
<string>Saves the program state (position, history...) to a file</string>
</property>
<property name="shortcut">
- <string>Ctrl+Shift+S</string>
+ <string notr="true">Ctrl+Shift+S</string>
</property>
</action>
<action name="actionOptions">
<string>Dialog for changing the options</string>
</property>
<property name="shortcut">
- <string>Ctrl+Shift+O</string>
+ <string notr="true">Ctrl+Shift+O</string>
</property>
</action>
<action name="actionPreview">
<string>Shows a preview of the result export</string>
</property>
<property name="shortcut">
- <string>Ctrl+Shift+V</string>
+ <string notr="true">Ctrl+Shift+V</string>
</property>
</action>
<action name="actionClear">
<string>Clears the file table</string>
</property>
<property name="shortcut">
- <string>Ctrl+L</string>
+ <string notr="true">Ctrl+L</string>
</property>
</action>
<action name="actionStart">
<property name="toolTip">
<string>Start the search</string>
</property>
+ <property name="shortcut">
+ <string notr="true">Ctrl+F</string>
+ </property>
</action>
<action name="actionStop">
<property name="enabled">
<property name="toolTip">
<string>Stop the current search</string>
</property>
+ <property name="shortcut">
+ <string notr="true">Pause</string>
+ </property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE" sourcelanguage="en_US">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <source>Dialog</source>
+ <translation type="vanished">Dialog</translation>
+ </message>
+ <message>
+ <source><!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></source>
+ <translation type="obsolete"><!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></translation>
+ </message>
+ <message>
+ <source>&OK</source>
+ <translation>&OK</translation>
+ </message>
+ <message>
+ <source><!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></source>
+ <translation type="vanished"><!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></translation>
+ </message>
+ <message>
+ <source>Version:</source>
+ <translation>Version:</translation>
+ </message>
+ <message>
+ <source>2015.05.00</source>
+ <translation type="vanished">2015.05.00</translation>
+ </message>
+ <message>
+ <source><!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></source>
+ <translation><!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></translation>
+ </message>
+ <message>
+ <source>About the Program</source>
+ <translation>Über das Programm</translation>
+ </message>
+</context>
+<context>
+ <name>DialogFilePlaceHolders</name>
+ <message>
+ <source>File Specific Placeholders</source>
+ <translation>Dateispezifische Platzhalter</translation>
+ </message>
+ <message>
+ <source>New Row</source>
+ <translation>Neue Zeile</translation>
+ </message>
+ <message>
+ <source>Placeholder</source>
+ <translation>Platzhalter</translation>
+ </message>
+ <message>
+ <source>Example</source>
+ <translation>Beispiel</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>Beschreibung</translation>
+ </message>
+ <message>
+ <source>base directory</source>
+ <translation>Basisverzeichnis</translation>
+ </message>
+ <message>
+ <source>filename with absolute path</source>
+ <translation>Dateiname mit absolutem Pfad</translation>
+ </message>
+ <message>
+ <source>relative path</source>
+ <translation type="vanished">relativer Pfad</translation>
+ </message>
+ <message>
+ <source>filename with extension</source>
+ <translation>Dateiname mit Dateityp</translation>
+ </message>
+ <message>
+ <source>filename without extension</source>
+ <translation>Dateiname ohne Dateityp</translation>
+ </message>
+ <message>
+ <source>extension</source>
+ <translation>Dateityp</translation>
+ </message>
+ <message>
+ <source>date/time of the last change</source>
+ <translation>Datum/Zeit der letzten Änderung</translation>
+ </message>
+ <message>
+ <source>file length in megabyte</source>
+ <translation>Dateilänge in Megabyte</translation>
+ </message>
+ <message>
+ <source>'file', 'dir', 'link (file)', 'link (dir)'</source>
+ <translation>'file', 'dir', 'link (Datei)', 'link (Verz.)'</translation>
+ </message>
+ <message>
+ <source>\t</source>
+ <translation type="obsolete">\t</translation>
+ </message>
+ <message>
+ <source>tabulator</source>
+ <translation>Tabulator</translation>
+ </message>
+ <message>
+ <source>newline</source>
+ <translation>Zeilenwechsel</translation>
+ </message>
+ <message>
+ <source>path without node</source>
+ <translation>Pfad ohne Dateinamen</translation>
+ </message>
+</context>
+<context>
+ <name>DialogGlobalPlaceholder</name>
+ <message>
+ <source>Placeholders for Header and Footer</source>
+ <translation>Platzhalter für Dateikopf und Dateiende</translation>
+ </message>
+ <message>
+ <source>New Row</source>
+ <translation>Neue Zeile</translation>
+ </message>
+ <message>
+ <source>Placeholder</source>
+ <translation>Platzhalter</translation>
+ </message>
+ <message>
+ <source>Description</source>
+ <translation>Beschreibung</translation>
+ </message>
+ <message>
+ <source>current date/time</source>
+ <translation>aktuelles Datum/aktuelle Zeit</translation>
+ </message>
+ <message>
+ <source>current file patterns</source>
+ <translation>aktuelle Dateisuchmuster</translation>
+ </message>
+ <message>
+ <source>current text pattern</source>
+ <translation>aktuelles Textsuchmuster</translation>
+ </message>
+ <message>
+ <source>count of found directories</source>
+ <translation>Zahl der gefundenen Verzeichnisse</translation>
+ </message>
+ <message>
+ <source>count of found files</source>
+ <translation>Zahl der gefundenen Dateien</translation>
+ </message>
+ <message>
+ <source>sum of the lengths of the found files</source>
+ <translation>Summe der Dateilängen der gefundenen Dateien</translation>
+ </message>
+ <message>
+ <source>sum of the lengths of the found files in MBytes</source>
+ <translation>Summe der Dateilängen der gefundenen Dateien in MByte</translation>
+ </message>
+ <message>
+ <source>runtime of the search in seconds</source>
+ <translation>Laufzeit der Suche in Sekunden</translation>
+ </message>
+ <message>
+ <source>newline (line feed)</source>
+ <translation>Zeilenwechsel (Linefeed)</translation>
+ </message>
+ <message>
+ <source>newline character (carriage return)</source>
+ <translation>Zeilenwechsel (Carriage return)</translation>
+ </message>
+ <message>
+ <source>tabulator</source>
+ <translation>Tabulator</translation>
+ </message>
+ <message>
+ <source>backslash</source>
+ <translation>umgekehrter Schrägstrich (Backslash)</translation>
+ </message>
+</context>
+<context>
+ <name>DialogOptions</name>
+ <message>
+ <source>Dialog</source>
+ <translation type="obsolete">Dialog</translation>
+ </message>
+ <message>
+ <source>Programs (Context Menu)</source>
+ <translation>Programme (Kontextmenü)</translation>
+ </message>
+ <message>
+ <source>File Type</source>
+ <translation>Dateityp</translation>
+ </message>
+ <message>
+ <source>Titel (Menu)</source>
+ <translation>Titel (Menü)</translation>
+ </message>
+ <message>
+ <source>Program</source>
+ <translation>Programm</translation>
+ </message>
+ <message>
+ <source>Arguments</source>
+ <translation>Argumente</translation>
+ </message>
+ <message>
+ <source>Directory Mode</source>
+ <translation>Verzeichnismodus</translation>
+ </message>
+ <message>
+ <source>Editor</source>
+ <translation>Editor</translation>
+ </message>
+ <message>
+ <source>Shell</source>
+ <translation>Shell</translation>
+ </message>
+ <message>
+ <source>&Add/change</source>
+ <translation>Hinzufügen/Ändern</translation>
+ </message>
+ <message>
+ <source>D&elete</source>
+ <translation>Lösch&en</translation>
+ </message>
+ <message>
+ <source>&Up</source>
+ <translation>A&uf</translation>
+ </message>
+ <message>
+ <source>&Down</source>
+ <translation>Runter</translation>
+ </message>
+ <message>
+ <source>Current Entry</source>
+ <translation>Aktuelles Element</translation>
+ </message>
+ <message>
+ <source>File Type:</source>
+ <translation>Dateityp:</translation>
+ </message>
+ <message>
+ <source>Title:</source>
+ <translation>Titel:</translation>
+ </message>
+ <message>
+ <source><html><head/><body><p>Program:</p></body></html></source>
+ <translation><html><head/><body><p>Programm:</p></body></html></translation>
+ </message>
+ <message>
+ <source>Arguments:</source>
+ <translation>Argumente</translation>
+ </message>
+ <message>
+ <source>Directory mode</source>
+ <translation>Verzeichnismodus</translation>
+ </message>
+ <message>
+ <source>File</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <source>Directory</source>
+ <translation>Verzeichnis</translation>
+ </message>
+ <message>
+ <source>Both</source>
+ <translation>Beide</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation type="vanished">...</translation>
+ </message>
+ <message>
+ <source>Parent directory</source>
+ <translation>Vaterverzeichnis</translation>
+ </message>
+ <message>
+ <source>Entry (if directory)</source>
+ <translation>Eintrag (wenn Verzeichnis)</translation>
+ </message>
+ <message>
+ <source>Base directory</source>
+ <translation>Basisverzeichnis</translation>
+ </message>
+ <message>
+ <source>Tab 2</source>
+ <translation>Tab 2</translation>
+ </message>
+ <message>
+ <source>Select Program File</source>
+ <translation>Wähle Programmdatei</translation>
+ </message>
+ <message>
+ <source>Options</source>
+ <translation>Optionen</translation>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <source>RePubLib File Finder</source>
+ <translation>RePubLib Dateisuche</translation>
+ </message>
+ <message>
+ <source>&Directory, File Patterns, Text Pattern</source>
+ <translation>&Basis, Dateimuster, Textmuster</translation>
+ </message>
+ <message>
+ <source>Directory:</source>
+ <translation>Basisverzeichnis:</translation>
+ </message>
+ <message>
+ <source>Dirs</source>
+ <translation>Verz.</translation>
+ </message>
+ <message>
+ <source>Links</source>
+ <translation>Links</translation>
+ </message>
+ <message>
+ <source>Hidden</source>
+ <translation type="vanished">Versteckt</translation>
+ </message>
+ <message>
+ <source>Write</source>
+ <translation type="vanished">Schreibbar</translation>
+ </message>
+ <message>
+ <source>Read</source>
+ <translation type="vanished">Lesbar</translation>
+ </message>
+ <message>
+ <source>Exec.</source>
+ <translation type="vanished">Ausführbar</translation>
+ </message>
+ <message>
+ <source>Text Pattern:</source>
+ <translation>Textmuster:</translation>
+ </message>
+ <message>
+ <source>File Patterns:</source>
+ <translation>Dateimuster:</translation>
+ </message>
+ <message>
+ <source><html><head/><body><p>A comma (',') separated list of filename patterns</p><p>Example: *.txt,*.odt</p></body></html></source>
+ <translation type="vanished"><html><head/><body><p>Eine kommagetrennte (',') Liste von Dateinamensmuster</p><p>Beispiel: *.txt,*.odt</p></body></html></translation>
+ </message>
+ <message>
+ <source>Regular expr.</source>
+ <translation>Reg. Ausdruck</translation>
+ </message>
+ <message>
+ <source>Binary files</source>
+ <translation>Binärdateien</translation>
+ </message>
+ <message>
+ <source>Execute the search</source>
+ <translation>Suche starten</translation>
+ </message>
+ <message>
+ <source>&Run search</source>
+ <translation>Suche sta&rten</translation>
+ </message>
+ <message>
+ <source>Ctrl+F</source>
+ <translation type="vanished">Ctrl+F</translation>
+ </message>
+ <message>
+ <source>Change to the parent directory</source>
+ <translation>Ins Vaterverzeichnis wechseln</translation>
+ </message>
+ <message>
+ <source>&Up</source>
+ <translation>A&uf</translation>
+ </message>
+ <message>
+ <source>Select directory by a dialog box</source>
+ <translation>Wähle das Basisverzeichnis mittels Dialogbox</translation>
+ </message>
+ <message>
+ <source>The base directory (starting point of the search)</source>
+ <translation>Das Basisverzeichnis, aus dem die Suche startet</translation>
+ </message>
+ <message>
+ <source>ignore case</source>
+ <translation type="vanished">ign. Groß/Klein.</translation>
+ </message>
+ <message>
+ <source>Files</source>
+ <translation>Dateien</translation>
+ </message>
+ <message>
+ <source>&Size, Date, Depth, Excluded Dirs</source>
+ <translation>Größe, Datum, Tiefe, Ausschlussverzeichnisse</translation>
+ </message>
+ <message>
+ <source>Min. Size:</source>
+ <translation>Minimalgröße</translation>
+ </message>
+ <message>
+ <source><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></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>Younger than:</source>
+ <translation>Jünger als:</translation>
+ </message>
+ <message>
+ <source><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></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>Min. Depth:</source>
+ <translation>Min. Tiefe:</translation>
+ </message>
+ <message>
+ <source><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></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>Max Size:</source>
+ <translation>Max. Tiefe:</translation>
+ </message>
+ <message>
+ <source><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></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>Older than:</source>
+ <translation>Älter als:</translation>
+ </message>
+ <message>
+ <source><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></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>Max. Depth:</source>
+ <translation>Max. Tiefe:</translation>
+ </message>
+ <message>
+ <source><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></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>Excluded Dirs:</source>
+ <translation>Ausschlussverzeichnisse:</translation>
+ </message>
+ <message>
+ <source><html><head/><body><p>a comma (',') separated list of directory names not entered for the search.</p><p>Example: .git,.cache</p></body></html></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>&Export</source>
+ <translation>&Export</translation>
+ </message>
+ <message>
+ <source>Export file:</source>
+ <translation type="vanished">Exportdatei:</translation>
+ </message>
+ <message>
+ <source>Template of a line for each file</source>
+ <translation>Vorlage einer Zeile für jede Datei</translation>
+ </message>
+ <message>
+ <source>Select a placeholder for the template</source>
+ <translation>Wähle einen Platzhalter für die Vorlage</translation>
+ </message>
+ <message>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <source>&File</source>
+ <translation>&Datei</translation>
+ </message>
+ <message>
+ <source>Clipboard</source>
+ <translation>Zwischenablage</translation>
+ </message>
+ <message>
+ <source>Name of the export file</source>
+ <translation>Name der Exportdatei</translation>
+ </message>
+ <message>
+ <source>refind.result.txt</source>
+ <translation type="vanished">refind.result.txt</translation>
+ </message>
+ <message>
+ <source>Select the export file</source>
+ <translation>Wähle eine Exportdatei</translation>
+ </message>
+ <message>
+ <source>Exports file attributes (specified in the template line) of each found files found file in a textfile or clipboard</source>
+ <translation>Exportiert Dateiattribute (spezifiziert in der Vorlagenzeile) jeder gefundenen Datei in eine Textdatei oder in die Zwischenablage</translation>
+ </message>
+ <message>
+ <source>Alt+E</source>
+ <translation type="vanished">Alt+E</translation>
+ </message>
+ <message>
+ <source>File footer:</source>
+ <translation>Dateiende:</translation>
+ </message>
+ <message>
+ <source>Line template:</source>
+ <translation>Zeilenvorlage:</translation>
+ </message>
+ <message>
+ <source>File header:</source>
+ <translation>Dateikopf:</translation>
+ </message>
+ <message>
+ <source>Text at the top of the export file</source>
+ <translation>Text am Anfang der Exportdatei</translation>
+ </message>
+ <message>
+ <source>Text at the end of the export file</source>
+ <translation>Text am Ende der Exportdatei</translation>
+ </message>
+ <message>
+ <source>=== found: ${dirs} dir(s) and ${files} file(s) with ${megabytes} MB in ${runtime} sec</source>
+ <translation>=== Gefunden: ${dirs} Verzeichnis(se) und ${files} Datei(en) mit ${megabytes} MB in ${runtime} Sekunden</translation>
+ </message>
+ <message>
+ <source>Select a placeholder for the header</source>
+ <translation>Wähle einen Platzhalter für den Dateikopf</translation>
+ </message>
+ <message>
+ <source>Select a placeholder for the footer</source>
+ <translation>Wähle einen Platzhalter für das Dateiende</translation>
+ </message>
+ <message>
+ <source>Filename</source>
+ <translation>Dateiname</translation>
+ </message>
+ <message>
+ <source>Ext</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Size (MByte)</source>
+ <translation>Größe (MByte)</translation>
+ </message>
+ <message>
+ <source>Modified</source>
+ <translation>Geändert</translation>
+ </message>
+ <message>
+ <source>Type</source>
+ <translation>Typ</translation>
+ </message>
+ <message>
+ <source>Path</source>
+ <translation>Pfad</translation>
+ </message>
+ <message>
+ <source>&Help</source>
+ <translation>&Hilfe</translation>
+ </message>
+ <message>
+ <source>&Navigate</source>
+ <translation>&Navigation</translation>
+ </message>
+ <message>
+ <source>&Edit</source>
+ <translation>&Bearbeiten</translation>
+ </message>
+ <message>
+ <source>toolBar</source>
+ <translation>Werkzeugmenü</translation>
+ </message>
+ <message>
+ <source>toolBar_2</source>
+ <translation>toolBar_2</translation>
+ </message>
+ <message>
+ <source>E&xit</source>
+ <translation>&Beenden</translation>
+ </message>
+ <message>
+ <source>Exits the program</source>
+ <translation>Beendet das Programm</translation>
+ </message>
+ <message>
+ <source>Search the files with the given properties</source>
+ <translation>Suche nach Dateien mit den gegebenen Eigenschaften</translation>
+ </message>
+ <message>
+ <source>&About</source>
+ <translation>Ü&ber</translation>
+ </message>
+ <message>
+ <source>&Select directory</source>
+ <translation>&Wähle Basisverzeichnis</translation>
+ </message>
+ <message>
+ <source>Select directory with a dialog</source>
+ <translation>Wähle das Basisverzeichnis mit einem Dialog</translation>
+ </message>
+ <message>
+ <source>Get absolute &path</source>
+ <translation>Absolut&pfad</translation>
+ </message>
+ <message>
+ <source>Puts the absolute path of the selected file into the clipboard</source>
+ <translation>Bringt den absoluten Pfad der gewählten Datei in die Zwischenablage</translation>
+ </message>
+ <message>
+ <source>&full name to clipboard</source>
+ <translation>Vollname in Zw.ablage</translation>
+ </message>
+ <message>
+ <source>&base directory to clipboard</source>
+ <translation>&Basisverzeichnis in Zw.ablage</translation>
+ </message>
+ <message>
+ <source>Puts the base directory into the clipboard</source>
+ <translation>Bringt den Namen des Basisverzeichnis in die Zwischenablage</translation>
+ </message>
+ <message>
+ <source>&Reset search parameters</source>
+ <translation>Suchparameter zu&rücksetzen</translation>
+ </message>
+ <message>
+ <source>Sets the file filter properties to the default</source>
+ <translation>Setzt die Datei-Filterparameter auf die Ausgangswerte</translation>
+ </message>
+ <message>
+ <source>Sa&ve</source>
+ <translation>Speic&hern</translation>
+ </message>
+ <message>
+ <source>Saves the program state (position, history...) to a file</source>
+ <translation>Speichert den Programmstatus (Position, Historie...) in eine Datei</translation>
+ </message>
+ <message>
+ <source>not a valid file: </source>
+ <translation>keine gültige Datei:</translation>
+ </message>
+ <message>
+ <source>result exported to </source>
+ <translation>Ergebnis exportiert nach </translation>
+ </message>
+ <message>
+ <source>result exported to the clipboard</source>
+ <translation>Ergebnis in die Zwischenablage kopiert</translation>
+ </message>
+ <message>
+ <source>unknown placeholder: </source>
+ <translation type="vanished">Unbekannter Platzhalter</translation>
+ </message>
+ <message>
+ <source>directory not found: </source>
+ <translation>Verzeichnis nicht gefunden: </translation>
+ </message>
+ <message>
+ <source>not a directory: </source>
+ <translation>Kein Vezeichnis: </translation>
+ </message>
+ <message>
+ <source>no path delimiter allowed</source>
+ <translation>Kein Pfadtrenner erlaubt</translation>
+ </message>
+ <message>
+ <source>no patterns allowed. Do not use '*</source>
+ <translation>Kein Muster erlaubt. Benutze keinen '*'</translation>
+ </message>
+ <message>
+ <source>Select Directory</source>
+ <translation>Wähle Verzeichnis</translation>
+ </message>
+ <message>
+ <source>Select Export File</source>
+ <translation>Wähle Exportdatei</translation>
+ </message>
+ <message>
+ <source>Adds the result of the next search to the table</source>
+ <translation>Fügt das Ergebnis der nächsten Suche ans Ende der Tabelle</translation>
+ </message>
+ <message>
+ <source>Append</source>
+ <translation>Anfügen</translation>
+ </message>
+ <message>
+ <source>Ignore case</source>
+ <translation>Ignor. Groß/Kl.</translation>
+ </message>
+ <message>
+ <source>Clears the file table</source>
+ <translation>Löscht die Dateitabelle</translation>
+ </message>
+ <message>
+ <source>C&lear</source>
+ <translation>&Löschen</translation>
+ </message>
+ <message>
+ <source>S&top search</source>
+ <translation>Suche anhalten</translation>
+ </message>
+ <message>
+ <source><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></source>
+ <translation><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></translation>
+ </message>
+ <message>
+ <source>Stop after:</source>
+ <translation>Halt nach:</translation>
+ </message>
+ <message>
+ <source>&Preview</source>
+ <translation>Vorschau</translation>
+ </message>
+ <message>
+ <source>&File:</source>
+ <translation>Datei:</translation>
+ </message>
+ <message>
+ <source>&Search</source>
+ <translation>Suche</translation>
+ </message>
+ <message>
+ <source>&Options</source>
+ <translation>&Optionen</translation>
+ </message>
+ <message>
+ <source>Dialog for changing the options</source>
+ <translation>Dialog zum Änderung der Optionen</translation>
+ </message>
+ <message>
+ <source>Pre&view</source>
+ <translation>&Vorschau</translation>
+ </message>
+ <message>
+ <source>Shows a preview of the result export</source>
+ <translation>Zeigt eine Vorschau der Exportergebnisse</translation>
+ </message>
+ <message>
+ <source>Start search</source>
+ <translation>Startet die Suche</translation>
+ </message>
+ <message>
+ <source>Start the search</source>
+ <translation>Suche starten</translation>
+ </message>
+ <message>
+ <source>Stop search</source>
+ <translation>Suche anhalten</translation>
+ </message>
+ <message>
+ <source>Stop the current search</source>
+ <translation>Halte die aktuelle Suche an</translation>
+ </message>
+ <message>
+ <source>copy </source>
+ <translation>Kopiere </translation>
+ </message>
+ <message>
+ <source>copy %1 file(s) and %2 dir(s)</source>
+ <translation>Kopiere %1 Datei(en) und %2 Verzeichnis(se)</translation>
+ </message>
+ <message>
+ <source>copy %1 file(s)</source>
+ <translation>Kopiere %1 Datei(en) </translation>
+ </message>
+ <message>
+ <source>copy %1 dirs(s)</source>
+ <translation>Kopiere %1 Verzeichnis(se)</translation>
+ </message>
+ <message>
+ <source>%1 entry/entries copied to clipboard</source>
+ <translation>%1 Elntrag/Einträge in die Zwischenablage kopiert</translation>
+ </message>
+ <message>
+ <source>started:</source>
+ <translation>Gestartet:</translation>
+ </message>
+ <message>
+ <source> %1 object(s)</source>
+ <translation>%1 Objekt(e)</translation>
+ </message>
+ <message>
+ <source>Welcome at refind</source>
+ <translation type="vanished">Willkommen bei refind</translation>
+ </message>
+ <message>
+ <source>Preview of the Export</source>
+ <translation>Vorschau auf den Export</translation>
+ </message>
+ <message>
+ <source>If this count of hits is reachted the search stops</source>
+ <translation>Wenn diese Zahl an Treffern erreicht ist, wird die Suche abgebrochen</translation>
+ </message>
+ <message>
+ <source>Go to the parent directory</source>
+ <translation>In Vorgängerverzeichnis wechseln</translation>
+ </message>
+ <message>
+ <source>Normal files will be found</source>
+ <translation>Normale Dateien werden gefunden</translation>
+ </message>
+ <message>
+ <source>Case insensitiv text search</source>
+ <translation>Textsuche berücksichtigt Groß-/Kleinschreibung nicht</translation>
+ </message>
+ <message>
+ <source>Directories will be found</source>
+ <translation>Verzeichnisse werden gefunden</translation>
+ </message>
+ <message>
+ <source>Text pattern is a regular expression (Pearl syntax)</source>
+ <translation type="vanished">Das Textsuchmuster enthält einen regulären Ausdruck (Perl Syntax)</translation>
+ </message>
+ <message>
+ <source>Symbolic links will be found</source>
+ <translation>Symbolische Verknüpfungen (Links) werden gefunden</translation>
+ </message>
+ <message>
+ <source>Files containing ASCII NUL will be found too</source>
+ <translation>Dateien, die ASCII NUL enthalten, werden auch gefunden</translation>
+ </message>
+ <message>
+ <source>Text pattern is a regular expression (Perl syntax)</source>
+ <translation>Das Textsuchmuster enthält einen regulären Ausdruck (Perl Syntax)</translation>
+ </message>
+ <message>
+ <source>Only files containing this text (or text pattern) will be found</source>
+ <translation>Nur Dateien, die diesen Text (oder Muster) enthalten, werden gefunden</translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <source>link (dir)</source>
+ <translation>Link (Verz.)</translation>
+ </message>
+ <message>
+ <source>link (file)</source>
+ <translation>Link (Datei)</translation>
+ </message>
+ <message>
+ <source>dir</source>
+ <translation>Verz.</translation>
+ </message>
+ <message>
+ <source>file</source>
+ <translation>Datei</translation>
+ </message>
+ <message>
+ <source>Found: %d dir(s) and %d file(s) with %.6f MByte. Duration of the search: %.3f sec</source>
+ <translation type="vanished">Gefunden: %d Verzeichnis(se) und %d Datei(en) mit %.6f MByte. Dauer der Suche: %.3f sec</translation>
+ </message>
+ <message>
+ <source>more than 2 power operators, e.g. '2^3^4'</source>
+ <translation>Mehr als 2 Potenzoperatoren, z.B. '2^3^4'</translation>
+ </message>
+ <message>
+ <source>number overflow while power operation</source>
+ <translation>Zahlüberlauf in Potenzoperation</translation>
+ </message>
+ <message>
+ <source>number expected: </source>
+ <translation>Zahl erwartet: </translation>
+ </message>
+ <message>
+ <source>missing ':' in unit definition, e.g. 'k:1000': </source>
+ <translation>vermisse ':' in der Einheitendefinition, z.B. 'k:1000': </translation>
+ </message>
+ <message>
+ <source>too many ':' in unit definition: </source>
+ <translation>Zu viele ':' in der Einheitendefinition: </translation>
+ </message>
+ <message>
+ <source>not a number: </source>
+ <translation>Keine Zahl: </translation>
+ </message>
+ <message>
+ <source>unknown unit '$1'. Allowed: </source>
+ <translation type="vanished">Unbekannte Einheit '$1'. Erlaubt: </translation>
+ </message>
+ <message>
+ <source>empty string is not a date/time</source>
+ <translation>Ein leerer String ist kein Datum/keine Zeit</translation>
+ </message>
+ <message>
+ <source>not an integer: </source>
+ <translation>Keine Ganzzahl: </translation>
+ </message>
+ <message>
+ <source>copy</source>
+ <translation>Kopiere</translation>
+ </message>
+ <message>
+ <source>not found: %1</source>
+ <translation>Nicht gefunden: %1</translation>
+ </message>
+ <message>
+ <source>cannot open (%1): %2</source>
+ <translation>Kann nicht öffnen (%1): %2</translation>
+ </message>
+ <message>
+ <source>cannot write (%1): %2 [%3/%4]</source>
+ <translation>Kann nicht schreiben (%1): %2 [%3/%4]</translation>
+ </message>
+ <message>
+ <source>file can be read only partitionally: %1 [%2/%3]</source>
+ <translation>Datei kann teilweise schreibgeschützt sein: %1 [%2/%3]</translation>
+ </message>
+ <message>
+ <source>cannot set date/time (%1): %2</source>
+ <translation>Kann Dateidatum nicht setzen: (%1): %2</translation>
+ </message>
+ <message>
+ <source>cannot set permissions (%1): %2</source>
+ <translation>Kann Dateirechte nicht setzen (%1): %2</translation>
+ </message>
+ <message>
+ <source>can't create directory (%1): %2</source>
+ <translation>Kann Verzeichnis nicht erzeugen (%1): %2</translation>
+ </message>
+ <message>
+ <source>can't create directory (is a file): </source>
+ <translation>Kann Verzeichnis nicht erstellen (ist eine Datei): </translation>
+ </message>
+ <message>
+ <source>unknown placeholder: </source>
+ <translation>Unbekannter Platzhalter: </translation>
+ </message>
+ <message>
+ <source>%1 of %2 (%3 %)</source>
+ <translation>%1 von %2 (%3 %)</translation>
+ </message>
+ <message>
+ <source>unknown unit '%1'. Allowed: </source>
+ <translation>unbekannte Einheit: '%1'. Erlaubt: </translation>
+ </message>
+ <message>
+ <source>Found: %1 dir(s) and %2 file(s) with %%3. Runtime: %4</source>
+ <translation type="vanished">Gefunden: %1 Verzeichnis(se) und %2 Datei(en) mit %%3. Laufzeit: %4</translation>
+ </message>
+ <message>
+ <source>Found: %1 dir(s) and %2 file(s) with %3. Runtime: %4</source>
+ <translation>Gefunden: %1 Verzeichnis(se) und %2 Datei(en) mit %3. Laufzeit: %4</translation>
+ </message>
+</context>
+<context>
+ <name>ReGuiApplication</name>
+ <message>
+ <source>Welcome!</source>
+ <translation>Willkommen!</translation>
+ </message>
+</context>
+</TS>
dialogfileplaceholder.cpp \
utils.cpp \
dialogoptions.cpp \
- filetablewidget.cpp
+ filetablewidget.cpp \
+ ../../gui/ReGuiApplication.cpp
HEADERS += mainwindow.hpp \
dialogfileplaceholder.ui \
dialogoptions.ui
-TRANSLATIONS = refind_de.ts
+TRANSLATIONS = refind.de.ts
CODECFORSRC = UTF-8
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="de_DE" sourcelanguage="en_US">
-<context>
- <name>AboutDialog</name>
- <message>
- <source>Dialog</source>
- <translation>Dialog</translation>
- </message>
- <message>
- <source><!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></source>
- <translation type="obsolete"><!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></translation>
- </message>
- <message>
- <source>&OK</source>
- <translation type="unfinished">&OK</translation>
- </message>
- <message>
- <source><!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></source>
- <translation><!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></translation>
- </message>
-</context>
-<context>
- <name>DialogFilePlaceHolders</name>
- <message>
- <source>File Specific Placeholders</source>
- <translation type="unfinished">Dateispezifische Platzhalter</translation>
- </message>
- <message>
- <source>New Row</source>
- <translation type="unfinished">Neue Zeile</translation>
- </message>
- <message>
- <source>Placeholder</source>
- <translation>Platzhalter</translation>
- </message>
- <message>
- <source>Example</source>
- <translation>Beispiel</translation>
- </message>
- <message>
- <source>Description</source>
- <translation>Beschreibung</translation>
- </message>
- <message>
- <source>${base}</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>/home/bob</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>base directory</source>
- <translation>Basisverzeichnis</translation>
- </message>
- <message>
- <source>filename with absolute path</source>
- <translation>Dateiname mit absolutem Pfad</translation>
- </message>
- <message>
- <source>relative path</source>
- <translation>relativer Pfad</translation>
- </message>
- <message>
- <source>filename with extension</source>
- <translation>Dateiname mit Dateityp</translation>
- </message>
- <message>
- <source>filename without extension</source>
- <translation>Dateiname ohne Dateityp</translation>
- </message>
- <message>
- <source>extension</source>
- <translation>Dateityp</translation>
- </message>
- <message>
- <source>date/time of the last change</source>
- <translation>Datum/Zeit der letzten Änderung</translation>
- </message>
- <message>
- <source>file length in megabyte</source>
- <translation>Dateilänge in Megabyte</translation>
- </message>
- <message>
- <source>'file', 'dir', 'link (file)', 'link (dir)'</source>
- <translation>'file', 'dir', 'link (Datei)', 'link (Verz.)'</translation>
- </message>
- <message>
- <source>\t</source>
- <translation type="unfinished">\t</translation>
- </message>
- <message>
- <source>tabulator</source>
- <translation>Tabulator</translation>
- </message>
- <message>
- <source>newline</source>
- <translation>Zeilenwechsel</translation>
- </message>
-</context>
-<context>
- <name>DialogGlobalPlaceholder</name>
- <message>
- <source>Placeholders for Header and Footer</source>
- <translation>Platzhalter für Dateikopf und Dateiende</translation>
- </message>
- <message>
- <source>New Row</source>
- <translation>Neue Zeile</translation>
- </message>
- <message>
- <source>Placeholder</source>
- <translation>Platzhalter</translation>
- </message>
- <message>
- <source>Description</source>
- <translation>Beschreibung</translation>
- </message>
- <message>
- <source>current date/time</source>
- <translation>aktuelles Datum/aktuelle Zeit</translation>
- </message>
- <message>
- <source>current file patterns</source>
- <translation>aktuelle Dateisuchmuster</translation>
- </message>
- <message>
- <source>current text pattern</source>
- <translation>aktuelles Textsuchmuster</translation>
- </message>
- <message>
- <source>count of found directories</source>
- <translation>Zahl der gefundenen Verzeichnisse</translation>
- </message>
- <message>
- <source>count of found files</source>
- <translation>Zahl der gefundenen Dateien</translation>
- </message>
- <message>
- <source>sum of the lengths of the found files</source>
- <translation>Summe der Dateilängen der gefundenen Dateien</translation>
- </message>
- <message>
- <source>sum of the lengths of the found files in MBytes</source>
- <translation>Summe der Dateilängen der gefundenen Dateien in MByte</translation>
- </message>
- <message>
- <source>runtime of the search in seconds</source>
- <translation>Laufzeit der Suche in Sekunden</translation>
- </message>
- <message>
- <source>newline (line feed)</source>
- <translation>Zeilenwechsel (Linefeed)</translation>
- </message>
- <message>
- <source>newline character (carriage return)</source>
- <translation>Zeilenwechsel (Carriage return)</translation>
- </message>
- <message>
- <source>tabulator</source>
- <translation>Tabulator</translation>
- </message>
- <message>
- <source>backslash</source>
- <translation>umgekehrter Schrägstrich (Backslash)</translation>
- </message>
-</context>
-<context>
- <name>MainWindow</name>
- <message>
- <source>RePubLib File Finder</source>
- <translation>RePubLib Dateisuche</translation>
- </message>
- <message>
- <source>&Directory, File Patterns, Text Pattern</source>
- <translation>&Basis, Dateimuster, Textmuster</translation>
- </message>
- <message>
- <source>Directory:</source>
- <translation>Basisverzeichnis:</translation>
- </message>
- <message>
- <source>Dirs</source>
- <translation>Verz.</translation>
- </message>
- <message>
- <source>Links</source>
- <translation>Links</translation>
- </message>
- <message>
- <source>Hidden</source>
- <translation>Versteckt</translation>
- </message>
- <message>
- <source>Write</source>
- <translation>Schreibbar</translation>
- </message>
- <message>
- <source>Read</source>
- <translation>Lesbar</translation>
- </message>
- <message>
- <source>Exec.</source>
- <translation>Ausführbar</translation>
- </message>
- <message>
- <source>Text Pattern:</source>
- <translation>Textmuster:</translation>
- </message>
- <message>
- <source>File Patterns:</source>
- <translation>Dateimuster:</translation>
- </message>
- <message>
- <source><html><head/><body><p>A comma (',') separated list of filename patterns</p><p>Example: *.txt,*.odt</p></body></html></source>
- <translation><html><head/><body><p>Eine kommagetrennte (',') Liste von Dateinamensmuster</p><p>Beispiel: *.txt,*.odt</p></body></html></translation>
- </message>
- <message>
- <source>Regular expr.</source>
- <translation>Reg. Ausdruck</translation>
- </message>
- <message>
- <source>Binary files</source>
- <translation>Binärdateien</translation>
- </message>
- <message>
- <source>Execute the search</source>
- <translation>Suche starten</translation>
- </message>
- <message>
- <source>&Run search</source>
- <translation>Suche sta&rten</translation>
- </message>
- <message>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Change to the parent directory</source>
- <translation>Ins Vaterverzeichnis wechseln</translation>
- </message>
- <message>
- <source>&Up</source>
- <translation>A&uf</translation>
- </message>
- <message>
- <source>Select directory by a dialog box</source>
- <translation>Wähle das Basisverzeichnis mittels Dialogbox</translation>
- </message>
- <message>
- <source>The base directory (starting point of the search)</source>
- <translation>Das Basisverzeichnis, aus dem die Suche startet</translation>
- </message>
- <message>
- <source>ignore case</source>
- <translation>ign. Groß/Klein.</translation>
- </message>
- <message>
- <source>Files</source>
- <translation>Dateien</translation>
- </message>
- <message>
- <source>&Size, Date, Depth, Excluded Dirs</source>
- <translation>Größe, Datum, Tiefe, Ausschlussverzeichnisse</translation>
- </message>
- <message>
- <source>Min. Size:</source>
- <translation>Minimalgröße</translation>
- </message>
- <message>
- <source><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></source>
- <translation type="unfinished"><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></translation>
- </message>
- <message>
- <source>Younger than:</source>
- <translation>Jünger als:</translation>
- </message>
- <message>
- <source><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></source>
- <translation><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></translation>
- </message>
- <message>
- <source>Min. Depth:</source>
- <translation type="unfinished">Min. Tiefe:</translation>
- </message>
- <message>
- <source><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></source>
- <translation><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></translation>
- </message>
- <message>
- <source>Max Size:</source>
- <translation>Max. Tiefe:</translation>
- </message>
- <message>
- <source><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></source>
- <translation><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></translation>
- </message>
- <message>
- <source>Older than:</source>
- <translation>Älter als:</translation>
- </message>
- <message>
- <source><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></source>
- <translation><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></translation>
- </message>
- <message>
- <source>Max. Depth:</source>
- <translation type="unfinished">Max. Tiefe:</translation>
- </message>
- <message>
- <source><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></source>
- <translation><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></translation>
- </message>
- <message>
- <source>Excluded Dirs:</source>
- <translation type="unfinished">Ausschlussverzeichnisse:</translation>
- </message>
- <message>
- <source><html><head/><body><p>a comma (',') separated list of directory names not entered for the search.</p><p>Example: .git,.cache</p></body></html></source>
- <translation><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></translation>
- </message>
- <message>
- <source>&Export</source>
- <translation>&Export</translation>
- </message>
- <message>
- <source>Export file:</source>
- <translation>Exportdatei:</translation>
- </message>
- <message>
- <source>Template of a line for each file</source>
- <translation>Vorlage einer Zeile für jede Datei</translation>
- </message>
- <message>
- <source>Select a placeholder for the template</source>
- <translation>Wähle einen Platzhalter für die Vorlage</translation>
- </message>
- <message>
- <source>...</source>
- <translation>...</translation>
- </message>
- <message>
- <source>&File</source>
- <translation>&Datei</translation>
- </message>
- <message>
- <source>Clipboard</source>
- <translation>Zwischenablage</translation>
- </message>
- <message>
- <source>Name of the export file</source>
- <translation>Name der Exportdatei</translation>
- </message>
- <message>
- <source>refind.result.txt</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Select the export file</source>
- <translation>Wähle eine Exportdatei</translation>
- </message>
- <message>
- <source>Exports file attributes (specified in the template line) of each found files found file in a textfile or clipboard</source>
- <translation>Exportiert Dateiattribute (spezifiziert in der Vorlagenzeile) jeder gefundenen Datei in eine Textdatei oder in die Zwischenablage</translation>
- </message>
- <message>
- <source>Alt+E</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>File footer:</source>
- <translation>Dateiende:</translation>
- </message>
- <message>
- <source>Line template:</source>
- <translation>Zeilenvorlage:</translation>
- </message>
- <message>
- <source>File header:</source>
- <translation>Dateikopf:</translation>
- </message>
- <message>
- <source>Text at the top of the export file</source>
- <translation>Text am Anfang der Exportdatei</translation>
- </message>
- <message>
- <source>Text at the end of the export file</source>
- <translation>Text am Ende der Exportdatei</translation>
- </message>
- <message>
- <source>=== found: ${dirs} dir(s) and ${files} file(s) with ${megabytes} MB in ${runtime} sec</source>
- <translation>=== Gefunden: ${dirs} Verzeichnis(se) und ${files} Datei(en) mit ${megabytes} MB in ${runtime} Sekunden</translation>
- </message>
- <message>
- <source>Select a placeholder for the header</source>
- <translation>Wähle einen Platzhalter für den Dateikopf</translation>
- </message>
- <message>
- <source>Select a placeholder for the footer</source>
- <translation>Wähle einen Platzhalter für das Dateiende</translation>
- </message>
- <message>
- <source>Filename</source>
- <translation>Dateiname</translation>
- </message>
- <message>
- <source>Ext</source>
- <translation>Typ</translation>
- </message>
- <message>
- <source>Size (MByte)</source>
- <translation>Größe (MByte)</translation>
- </message>
- <message>
- <source>Modified</source>
- <translation>Geändert</translation>
- </message>
- <message>
- <source>Type</source>
- <translation>Typ</translation>
- </message>
- <message>
- <source>Path</source>
- <translation>Pfad</translation>
- </message>
- <message>
- <source>&Help</source>
- <translation>&Hilfe</translation>
- </message>
- <message>
- <source>&Navigate</source>
- <translation>&Navigation</translation>
- </message>
- <message>
- <source>&Edit</source>
- <translation>&Bearbeiten</translation>
- </message>
- <message>
- <source>toolBar</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>toolBar_2</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>E&xit</source>
- <translation>&Beenden</translation>
- </message>
- <message>
- <source>Exits the program</source>
- <translation>Beendet das Programm</translation>
- </message>
- <message>
- <source>Ctrl+X</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Search the files with the given properties</source>
- <translation>Suche nach Dateien mit den gegebenen Eigenschaften</translation>
- </message>
- <message>
- <source>Ctrl+R</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&About</source>
- <translation>Ü&ber</translation>
- </message>
- <message>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ctrl+E</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&Select directory</source>
- <translation>&Wähle Basisverzeichnis</translation>
- </message>
- <message>
- <source>Select directory with a dialog</source>
- <translation>Wähle das Basisverzeichnis mit einem Dialog</translation>
- </message>
- <message>
- <source>Ctrl+D</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Get absolute &path</source>
- <translation>Absolut&pfad</translation>
- </message>
- <message>
- <source>Puts the absolute path of the selected file into the clipboard</source>
- <translation>Bringt den absoluten Pfad der gewählten Datei in die Zwischenablage</translation>
- </message>
- <message>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&full name to clipboard</source>
- <translation>Vollname in Zw.ablage</translation>
- </message>
- <message>
- <source>Ctrl+N</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&base directory to clipboard</source>
- <translation>&Basisverzeichnis in Zw.ablage</translation>
- </message>
- <message>
- <source>Puts the base directory into the clipboard</source>
- <translation>Bringt den Namen des Basisverzeichnis in die Zwischenablage</translation>
- </message>
- <message>
- <source>Ctrl+B</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>&Reset search parameters</source>
- <translation>Suchparameter zu&rücksetzen</translation>
- </message>
- <message>
- <source>Sets the file filter properties to the default</source>
- <translation>Setzt die Datei-Filterparameter auf die Ausgangswerte</translation>
- </message>
- <message>
- <source>Sa&ve</source>
- <translation>Speic&hern</translation>
- </message>
- <message>
- <source>Saves the program state (position, history...) to a file</source>
- <translation>Speichert den Programmstatus (Position, Historie...) in eine Datei</translation>
- </message>
- <message>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>Willkommen bei refind</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <source>not a valid file: </source>
- <translation>keine gültige Datei:</translation>
- </message>
- <message>
- <source>result exported to </source>
- <translation>Ergebnis exportiert nach </translation>
- </message>
- <message>
- <source>result exported to the clipboard</source>
- <translation>Ergebnis in die Zwischenablage kopiert</translation>
- </message>
- <message>
- <source>unknown placeholder: </source>
- <translation>Unbekannter Platzhalter</translation>
- </message>
- <message>
- <source>directory not found: </source>
- <translation>Verzeichnis nicht gefunden: </translation>
- </message>
- <message>
- <source>not a directory: </source>
- <translation>Kein Vezeichnis: </translation>
- </message>
- <message>
- <source>no path delimiter allowed</source>
- <translation>Kein Pfadtrenner erlaubt</translation>
- </message>
- <message>
- <source>no patterns allowed. Do not use '*</source>
- <translation>Kein Muster erlaubt. Benutze keinen '*'</translation>
- </message>
- <message>
- <source>Select Directory</source>
- <translation>Wähle Verzeichnis</translation>
- </message>
- <message>
- <source>Select Export File</source>
- <translation>Wähle Exportdatei</translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <source>link (dir)</source>
- <translation>Link (Verz.)</translation>
- </message>
- <message>
- <source>link (file)</source>
- <translation>Link (Datei)</translation>
- </message>
- <message>
- <source>dir</source>
- <translation>Verz.</translation>
- </message>
- <message>
- <source>file</source>
- <translation>Datei</translation>
- </message>
- <message>
- <source>Found: %d dir(s) and %d file(s) with %.6f MByte. Duration of the search: %.3f sec</source>
- <translation>Gefunden: %d Verzeichnis(se) und %d Datei(en) mit %.6f MByte. Dauer der Suche: %.3f sec</translation>
- </message>
- <message>
- <source>more than 2 power operators, e.g. '2^3^4'</source>
- <translation>Mehr als 2 Potenzoperatoren, z.B. '2^3^4'</translation>
- </message>
- <message>
- <source>number overflow while power operation</source>
- <translation>Zahlüberlauf in Potenzoperation</translation>
- </message>
- <message>
- <source>number expected: </source>
- <translation>Zahl erwartet: </translation>
- </message>
- <message>
- <source>missing ':' in unit definition, e.g. 'k:1000': </source>
- <translation>vermisse ':' in der Einheitendefinition, z.B. 'k:1000': </translation>
- </message>
- <message>
- <source>too many ':' in unit definition: </source>
- <translation>Zu viele ':' in der Einheitendefinition: </translation>
- </message>
- <message>
- <source>not a number: </source>
- <translation>Keine Zahl: </translation>
- </message>
- <message>
- <source>unknown unit '$1'. Allowed: </source>
- <translation>Unbekannte Einheit '$1'. Erlaubt: </translation>
- </message>
- <message>
- <source>empty string is not a date/time</source>
- <translation>Ein leerer String ist kein Datum/keine Zeit</translation>
- </message>
- <message>
- <source>not an integer: </source>
- <translation>Keine Ganzzahl: </translation>
- </message>
-</context>
-</TS>
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);
}
}
}
- m_stream->flush();
+ if (m_stream != NULL)
+ m_stream->flush();
}
/**