Implemented saving and loading settings
Visibility of toolbar, toolbar location, size of window, width of table headers. Fixes #6develop
parent
096c74c4cc
commit
5163b4adbb
|
@ -0,0 +1,3 @@
|
|||
[submodule "xdgcfg"]
|
||||
path = xdgcfg
|
||||
url = https://schlomp.space/tastytea/xdgcfg.git
|
|
@ -1,6 +1,6 @@
|
|||
cmake_minimum_required (VERSION 3.6)
|
||||
project (whyblocked
|
||||
VERSION 0.11.1
|
||||
VERSION 0.12.0
|
||||
LANGUAGES CXX
|
||||
)
|
||||
|
||||
|
@ -15,6 +15,7 @@ pkg_check_modules(SQLITE3 sqlite3)
|
|||
find_package(Qt5Core CONFIG REQUIRED)
|
||||
if(NOT WITHOUT_GUI)
|
||||
find_package(Qt5Widgets CONFIG REQUIRED)
|
||||
pkg_check_modules(LIBCONFIG REQUIRED libconfig++)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
@ -29,9 +30,11 @@ set(CMAKE_AUTOUIC ON)
|
|||
include_directories(${PROJECT_BINARY_DIR})
|
||||
include_directories(${LIBXDG_BASEDIR_INCLUDE_DIRS})
|
||||
include_directories(${SQLITE3_INCLUDE_DIRS})
|
||||
include_directories(${LIBCONFIG_INCLUDE_DIRS})
|
||||
|
||||
link_directories(${LIBXDG_BASEDIR_LIBRARY_DIRS})
|
||||
link_directories(${SQLITE3_LIBRARY_DIRS})
|
||||
link_directories(${LIBCONFIG_LIBRARY_DIRS})
|
||||
|
||||
# Write version in header
|
||||
configure_file (
|
||||
|
@ -42,13 +45,17 @@ configure_file (
|
|||
set(COMMON_LIBRARIES
|
||||
${LIBXDG_BASEDIR_LIBRARIES} vsqlitepp stdc++fs)
|
||||
|
||||
add_executable(whyblocked src/interface_text.cpp src/whyblocked.cpp)
|
||||
add_executable(whyblocked
|
||||
src/interface_text.cpp src/whyblocked.cpp)
|
||||
target_link_libraries(whyblocked ${COMMON_LIBRARIES} Qt5::Core)
|
||||
install(TARGETS whyblocked DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
|
||||
if(NOT WITHOUT_GUI)
|
||||
add_executable(whyblocked-gui src/interface_qt.cpp src/whyblocked.cpp)
|
||||
target_link_libraries(whyblocked-gui ${COMMON_LIBRARIES} Qt5::Widgets)
|
||||
add_executable(whyblocked-gui
|
||||
src/interface_qt.cpp src/whyblocked.cpp src/xdgcfg.cpp)
|
||||
target_link_libraries(whyblocked-gui
|
||||
${COMMON_LIBRARIES} Qt5::Widgets
|
||||
${LIBCONFIG_LIBRARIES} stdc++fs)
|
||||
|
||||
install(TARGETS whyblocked-gui DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(FILES de.tastytea.Whyblocked.desktop DESTINATION
|
||||
|
|
|
@ -18,22 +18,136 @@
|
|||
#include <array>
|
||||
#include <QMessageBox>
|
||||
#include <QDebug>
|
||||
#include <iostream>
|
||||
#include <QTranslator>
|
||||
#include <QLibraryInfo>
|
||||
#include <QtCore/qmimedata.h>
|
||||
#include <libconfig.h++>
|
||||
#include "version.hpp"
|
||||
#include "whyblocked.hpp"
|
||||
#include "interface_qt.hpp"
|
||||
|
||||
MainWindow::MainWindow(QMainWindow *parent) : QMainWindow(parent)
|
||||
MainWindow::MainWindow(QMainWindow *parent)
|
||||
: QMainWindow(parent)
|
||||
, _config("whyblocked.cfg")
|
||||
, _headersize({ 250, 125, 125 })
|
||||
{
|
||||
setupUi(this);
|
||||
|
||||
_model = new QStandardItemModel;
|
||||
tableview->setModel(_model);
|
||||
|
||||
if (_config.read() == 0)
|
||||
{
|
||||
libconfig::Setting &root = _config.get_cfg().getRoot();
|
||||
string key;
|
||||
|
||||
key = "size";
|
||||
if (root.exists(key) && root[key.c_str()].isArray())
|
||||
{
|
||||
this->resize(root[key.c_str()][0], root[key.c_str()][1]);
|
||||
}
|
||||
|
||||
key = "toolbar_position";
|
||||
if (root.exists(key))
|
||||
{
|
||||
const string value = root[key.c_str()].c_str();
|
||||
if (value == "top")
|
||||
{
|
||||
this->removeToolBar(toolbar);
|
||||
this->addToolBar(Qt::TopToolBarArea, toolbar);
|
||||
}
|
||||
else if (value == "right")
|
||||
{
|
||||
this->removeToolBar(toolbar);
|
||||
this->addToolBar(Qt::RightToolBarArea, toolbar);
|
||||
}
|
||||
else if (value == "bottom")
|
||||
{
|
||||
this->removeToolBar(toolbar);
|
||||
this->addToolBar(Qt::BottomToolBarArea, toolbar);
|
||||
}
|
||||
else if (value == "left")
|
||||
{
|
||||
this->removeToolBar(toolbar);
|
||||
this->addToolBar(Qt::LeftToolBarArea, toolbar);
|
||||
}
|
||||
}
|
||||
|
||||
key = "toolbar_visible";
|
||||
if (root.exists(key))
|
||||
{
|
||||
toolbar->setVisible(root[key.c_str()]);
|
||||
}
|
||||
|
||||
key = "table_headers";
|
||||
if (root.exists(key) && root[key.c_str()].isArray())
|
||||
{
|
||||
const libconfig::Setting &value = root[key.c_str()];
|
||||
_headersize = { value[0], value[1], value[2] };
|
||||
}
|
||||
}
|
||||
|
||||
populate_tableview();
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
libconfig::Setting &root = _config.get_cfg().getRoot();
|
||||
// We can't add an element that already exists, so we delete it beforehand.
|
||||
for (const string &key :
|
||||
{ "size", "toolbar_position", "toolbar_visible", "table_headers" })
|
||||
{
|
||||
if (root.exists(key))
|
||||
{
|
||||
root.remove(key);
|
||||
}
|
||||
}
|
||||
|
||||
libconfig::Setting &size = root.add("size", libconfig::Setting::TypeArray);
|
||||
size.add(libconfig::Setting::TypeInt) = this->width();
|
||||
size.add(libconfig::Setting::TypeInt) = this->height();
|
||||
|
||||
libconfig::Setting &pos = root.add("toolbar_position",
|
||||
libconfig::Setting::TypeString);
|
||||
if (toolbar->orientation() == Qt::Orientation::Horizontal)
|
||||
{
|
||||
if (toolbar-> geometry().top() < 100)
|
||||
{
|
||||
pos = "top";
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = "bottom";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (toolbar->geometry().left() == 0)
|
||||
{
|
||||
pos = "left";
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = "right";
|
||||
}
|
||||
}
|
||||
|
||||
root.add("toolbar_visible", libconfig::Setting::TypeBoolean)
|
||||
= !toolbar->isHidden();
|
||||
|
||||
libconfig::Setting &headers = root.add("table_headers",
|
||||
libconfig::Setting::TypeArray);
|
||||
headers.add(libconfig::Setting::TypeInt) =
|
||||
tableview->horizontalHeader()->sectionSize(0);
|
||||
headers.add(libconfig::Setting::TypeInt) =
|
||||
tableview->horizontalHeader()->sectionSize(1);
|
||||
headers.add(libconfig::Setting::TypeInt) =
|
||||
tableview->horizontalHeader()->sectionSize(2);
|
||||
|
||||
_config.write();
|
||||
}
|
||||
|
||||
void MainWindow::populate_tableview()
|
||||
{
|
||||
_model->clear();
|
||||
|
@ -43,7 +157,9 @@ void MainWindow::populate_tableview()
|
|||
tr("Blocked/Silenced"),
|
||||
tr("Reason")
|
||||
});
|
||||
tableview->horizontalHeader()->resizeSection(0, 250);
|
||||
tableview->horizontalHeader()->resizeSection(0, _headersize[0]);
|
||||
tableview->horizontalHeader()->resizeSection(1, _headersize[1]);
|
||||
tableview->horizontalHeader()->resizeSection(2, _headersize[2]);
|
||||
|
||||
result_view result;
|
||||
if (database::view(result))
|
||||
|
|
|
@ -18,10 +18,13 @@
|
|||
#define INTERFACE_QT_HPP
|
||||
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <array>
|
||||
#include <QMainWindow>
|
||||
#include <QStandardItemModel>
|
||||
#include <QDialog>
|
||||
#include <QtGui/qevent.h>
|
||||
#include "xdgcfg.hpp"
|
||||
#include "ui_whyblocked.h"
|
||||
#include "ui_whyblocked_add.h"
|
||||
|
||||
|
@ -41,6 +44,7 @@ class MainWindow : public QMainWindow, private Ui::MainWindow
|
|||
|
||||
public:
|
||||
explicit MainWindow(QMainWindow *parent = nullptr);
|
||||
~MainWindow();
|
||||
void add_row(const QString &user, const int &blocked,
|
||||
const QString &reason);
|
||||
|
||||
|
@ -53,6 +57,8 @@ private:
|
|||
void dropEvent(QDropEvent *event);
|
||||
|
||||
QStandardItemModel *_model;
|
||||
xdgcfg _config;
|
||||
std::array<int, 3> _headersize;
|
||||
|
||||
private slots:
|
||||
void add();
|
||||
|
|
|
@ -100,6 +100,9 @@
|
|||
<property name="windowTitle">
|
||||
<string>Toolbar</string>
|
||||
</property>
|
||||
<property name="floatable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="toolBarArea">
|
||||
<enum>TopToolBarArea</enum>
|
||||
</attribute>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../xdgcfg/src/xdgcfg.cpp
|
|
@ -0,0 +1 @@
|
|||
../xdgcfg/src/xdgcfg.hpp
|
|
@ -69,12 +69,12 @@
|
|||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="262"/>
|
||||
<location filename="../src/interface_qt.cpp" line="378"/>
|
||||
<source>Insert receipt here.</source>
|
||||
<translation>Beleg hier einfügen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="297"/>
|
||||
<location filename="../src/interface_qt.cpp" line="413"/>
|
||||
<source>Added %1 to database.</source>
|
||||
<translation>%1 zur Datenbank hinzugefügt.</translation>
|
||||
</message>
|
||||
|
@ -102,158 +102,158 @@
|
|||
<translation>Werkzeugleiste</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="128"/>
|
||||
<location filename="../src/whyblocked.ui" line="131"/>
|
||||
<source>&Database</source>
|
||||
<translation>&Datenbank</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="138"/>
|
||||
<location filename="../src/whyblocked.ui" line="141"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="151"/>
|
||||
<location filename="../src/whyblocked.ui" line="154"/>
|
||||
<source>&Add</source>
|
||||
<translation>&Hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="154"/>
|
||||
<location filename="../src/whyblocked.ui" line="157"/>
|
||||
<source>Add user or instance</source>
|
||||
<translation>Benutzer oder Instanz hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="157"/>
|
||||
<location filename="../src/whyblocked.ui" line="160"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="166"/>
|
||||
<location filename="../src/whyblocked.ui" line="169"/>
|
||||
<source>Re&move</source>
|
||||
<translation>Ent&fernen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="169"/>
|
||||
<location filename="../src/whyblocked.ui" line="172"/>
|
||||
<source>Remove user or instance</source>
|
||||
<translation>Benutzer oder Instanz entfernen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="172"/>
|
||||
<location filename="../src/whyblocked.ui" line="175"/>
|
||||
<source>Del</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="181"/>
|
||||
<location filename="../src/whyblocked.ui" line="184"/>
|
||||
<source>&About</source>
|
||||
<translation>&Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="184"/>
|
||||
<location filename="../src/whyblocked.ui" line="187"/>
|
||||
<source>About this application</source>
|
||||
<translation>Über dieses Programm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="193"/>
|
||||
<location filename="../src/whyblocked.ui" line="196"/>
|
||||
<source>&Reload</source>
|
||||
<translation>Neu &laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="196"/>
|
||||
<location filename="../src/whyblocked.ui" line="199"/>
|
||||
<source>Reload database</source>
|
||||
<translation>Datenbank neu laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="199"/>
|
||||
<location filename="../src/whyblocked.ui" line="202"/>
|
||||
<source>Ctrl+R</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="208"/>
|
||||
<location filename="../src/whyblocked.ui" line="211"/>
|
||||
<source>&Quit</source>
|
||||
<translation>&Beenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="211"/>
|
||||
<location filename="../src/whyblocked.ui" line="214"/>
|
||||
<source>Quit application</source>
|
||||
<translation>Programm beenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="214"/>
|
||||
<location filename="../src/whyblocked.ui" line="217"/>
|
||||
<source>Ctrl+Q</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="223"/>
|
||||
<location filename="../src/whyblocked.ui" line="226"/>
|
||||
<source>&Edit</source>
|
||||
<translation>B&earbeiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="226"/>
|
||||
<location filename="../src/interface_qt.cpp" line="95"/>
|
||||
<location filename="../src/whyblocked.ui" line="229"/>
|
||||
<location filename="../src/interface_qt.cpp" line="211"/>
|
||||
<source>Edit entry</source>
|
||||
<translation>Eintrag bearbeiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="42"/>
|
||||
<location filename="../src/interface_qt.cpp" line="156"/>
|
||||
<source>User/Instance</source>
|
||||
<translation>Benutzer/Instanz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="43"/>
|
||||
<location filename="../src/interface_qt.cpp" line="157"/>
|
||||
<source>Blocked/Silenced</source>
|
||||
<translation>Blockiert/Gedämpft</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="44"/>
|
||||
<location filename="../src/interface_qt.cpp" line="158"/>
|
||||
<source>Reason</source>
|
||||
<translation>Begründung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="59"/>
|
||||
<location filename="../src/interface_qt.cpp" line="175"/>
|
||||
<source>Database loaded.</source>
|
||||
<translation>Datenbank geladen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="69"/>
|
||||
<location filename="../src/interface_qt.cpp" line="185"/>
|
||||
<source>blocked</source>
|
||||
<translation>blockiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="73"/>
|
||||
<location filename="../src/interface_qt.cpp" line="189"/>
|
||||
<source>silenced</source>
|
||||
<translation>gedämpft</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="89"/>
|
||||
<location filename="../src/interface_qt.cpp" line="205"/>
|
||||
<source>Invalid selection</source>
|
||||
<translation>Ungültige Auswahl</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="90"/>
|
||||
<location filename="../src/interface_qt.cpp" line="206"/>
|
||||
<source>Please select only 1 entry to edit.</source>
|
||||
<translation>Bitte nur 1 Eintrag zum bearbeiten auswählen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="127"/>
|
||||
<location filename="../src/interface_qt.cpp" line="243"/>
|
||||
<source>Removed %1 from database.</source>
|
||||
<translation>%1 aus der Datenbank gelöscht.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="135"/>
|
||||
<location filename="../src/interface_qt.cpp" line="251"/>
|
||||
<source>Select data to remove.</source>
|
||||
<translation>Wähle Daten zum löschen aus.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="141"/>
|
||||
<location filename="../src/interface_qt.cpp" line="257"/>
|
||||
<source>About Whyblocked</source>
|
||||
<translation>Über Whyblocked</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="142"/>
|
||||
<location filename="../src/interface_qt.cpp" line="258"/>
|
||||
<source><p><b>Whyblocked</b> %1</p><p>Reminds you why you blocked someone.</p><p>Sourcecode: <a href="https://schlomp.space/tastytea/whyblocked">https://schlomp.space/tastytea/whyblocked</a></p><p><small>Copyright © 2018 <a href="mailto:tastytea@tastytea.de">tastytea</a>.<br>Licence GPLv3: <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPL version 3</a>.<br>This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.</small></p></source>
|
||||
<translation><p><b>Whyblocked</b> %1</p><p>Erinnert dich, warum du jemanden blockiertest.</p><p>Quelltext: <a href="https://schlomp.space/tastytea/whyblocked">https://schlomp.space/tastytea/whyblocked</a></p><p><small>Copyright © 2018 <a href="mailto:tastytea@tastytea.de">tastytea</a>.<br>Lizenz GPLv3: <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPL version 3</a>.<br>Für dieses Programm besteht KEINERLEI GARANTIE. Dies ist freie Software, die Sie unter bestimmten Bedingungen weitergeben dürfen.</small></p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="165"/>
|
||||
<location filename="../src/interface_qt.cpp" line="281"/>
|
||||
<source>Receipts:</source>
|
||||
<translation>Belege:</translation>
|
||||
</message>
|
||||
|
|
|
@ -69,12 +69,12 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="262"/>
|
||||
<location filename="../src/interface_qt.cpp" line="378"/>
|
||||
<source>Insert receipt here.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="297"/>
|
||||
<location filename="../src/interface_qt.cpp" line="413"/>
|
||||
<source>Added %1 to database.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -102,158 +102,158 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="128"/>
|
||||
<location filename="../src/whyblocked.ui" line="131"/>
|
||||
<source>&Database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="138"/>
|
||||
<location filename="../src/whyblocked.ui" line="141"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="151"/>
|
||||
<location filename="../src/whyblocked.ui" line="154"/>
|
||||
<source>&Add</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="154"/>
|
||||
<location filename="../src/whyblocked.ui" line="157"/>
|
||||
<source>Add user or instance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="157"/>
|
||||
<location filename="../src/whyblocked.ui" line="160"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="166"/>
|
||||
<location filename="../src/whyblocked.ui" line="169"/>
|
||||
<source>Re&move</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="169"/>
|
||||
<location filename="../src/whyblocked.ui" line="172"/>
|
||||
<source>Remove user or instance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="172"/>
|
||||
<location filename="../src/whyblocked.ui" line="175"/>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="181"/>
|
||||
<location filename="../src/whyblocked.ui" line="184"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="184"/>
|
||||
<location filename="../src/whyblocked.ui" line="187"/>
|
||||
<source>About this application</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="193"/>
|
||||
<location filename="../src/whyblocked.ui" line="196"/>
|
||||
<source>&Reload</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="196"/>
|
||||
<location filename="../src/whyblocked.ui" line="199"/>
|
||||
<source>Reload database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="199"/>
|
||||
<location filename="../src/whyblocked.ui" line="202"/>
|
||||
<source>Ctrl+R</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="208"/>
|
||||
<location filename="../src/whyblocked.ui" line="211"/>
|
||||
<source>&Quit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="211"/>
|
||||
<location filename="../src/whyblocked.ui" line="214"/>
|
||||
<source>Quit application</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="214"/>
|
||||
<location filename="../src/whyblocked.ui" line="217"/>
|
||||
<source>Ctrl+Q</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="223"/>
|
||||
<location filename="../src/whyblocked.ui" line="226"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/whyblocked.ui" line="226"/>
|
||||
<location filename="../src/interface_qt.cpp" line="95"/>
|
||||
<location filename="../src/whyblocked.ui" line="229"/>
|
||||
<location filename="../src/interface_qt.cpp" line="211"/>
|
||||
<source>Edit entry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="42"/>
|
||||
<location filename="../src/interface_qt.cpp" line="156"/>
|
||||
<source>User/Instance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="43"/>
|
||||
<location filename="../src/interface_qt.cpp" line="157"/>
|
||||
<source>Blocked/Silenced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="44"/>
|
||||
<location filename="../src/interface_qt.cpp" line="158"/>
|
||||
<source>Reason</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="59"/>
|
||||
<location filename="../src/interface_qt.cpp" line="175"/>
|
||||
<source>Database loaded.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="69"/>
|
||||
<location filename="../src/interface_qt.cpp" line="185"/>
|
||||
<source>blocked</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="73"/>
|
||||
<location filename="../src/interface_qt.cpp" line="189"/>
|
||||
<source>silenced</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="89"/>
|
||||
<location filename="../src/interface_qt.cpp" line="205"/>
|
||||
<source>Invalid selection</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="90"/>
|
||||
<location filename="../src/interface_qt.cpp" line="206"/>
|
||||
<source>Please select only 1 entry to edit.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="127"/>
|
||||
<location filename="../src/interface_qt.cpp" line="243"/>
|
||||
<source>Removed %1 from database.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="135"/>
|
||||
<location filename="../src/interface_qt.cpp" line="251"/>
|
||||
<source>Select data to remove.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="141"/>
|
||||
<location filename="../src/interface_qt.cpp" line="257"/>
|
||||
<source>About Whyblocked</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="142"/>
|
||||
<location filename="../src/interface_qt.cpp" line="258"/>
|
||||
<source><p><b>Whyblocked</b> %1</p><p>Reminds you why you blocked someone.</p><p>Sourcecode: <a href="https://schlomp.space/tastytea/whyblocked">https://schlomp.space/tastytea/whyblocked</a></p><p><small>Copyright © 2018 <a href="mailto:tastytea@tastytea.de">tastytea</a>.<br>Licence GPLv3: <a href="https://www.gnu.org/licenses/gpl-3.0.html">GNU GPL version 3</a>.<br>This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.</small></p></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/interface_qt.cpp" line="165"/>
|
||||
<location filename="../src/interface_qt.cpp" line="281"/>
|
||||
<source>Receipts:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 6c0976baa74f959ed3218af56e56ff58202a5a05
|
Loading…
Reference in New Issue