Closed petr-nehez closed 5 years ago
@annejan How can I trigger Travis again? One build timed out...
Merging #490 into master will increase coverage by
2.21%
. The diff coverage is0%
.
@@ Coverage Diff @@
## master #490 +/- ##
=========================================
+ Coverage 7.14% 9.36% +2.21%
=========================================
Files 44 46 +2
Lines 2854 2925 +71
=========================================
+ Hits 204 274 +70
- Misses 2650 2651 +1
Impacted Files | Coverage Δ | |
---|---|---|
src/mainwindow.cpp | 0% <0%> (ø) |
:arrow_up: |
tests/auto/util/tst_util.cpp | 100% <0%> (ø) |
|
tests/auto/ui/tst_ui.cpp | 100% <0%> (ø) |
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update 30fc277...134c452. Read the comment docs.
What is the problem with codecov
?
I don't have no experience with that so far that's why I have no idea what to do with that...
There is no issue with codecov
I should probably remove the bot . .
It is complaining that the code coverage (which is very low anyway) went down with 0.001% or so 😉
Thank you for this nice and clean fix . .
I am happy to contribute. I am not a C++ developper at all (my daily job is Java in IntelliJ) and I tried to open the project in CLion but without success to build it. Do you know whether it is possible to import it into CLion and compile it there?
Importing into CLion should be trivial . .
Compiling is "just" Makefiles after the qmake
step . .
I'll have a quick look at it this afternoon
qtpass
folder as checked out from git.Well . . I got this far with the CMakeLists.txt https://github.com/IJHack/QtPass/blob/CMake/CMakeLists.txt
➜ cmake .
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/annejan/Projects/qtpass
➜ make
[ 1%] Automatic UIC for target qtpasslib
[ 1%] Built target qtpasslib_autogen
[ 3%] Generating localization/localization_nl_NL.qm
Updating 'localization/localization_nl_NL.qm'...
Generated 189 translation(s) (189 finished and 0 unfinished)
[ 5%] Generating localization/localization_it_IT.qm
Updating 'localization/localization_it_IT.qm'...
Generated 177 translation(s) (177 finished and 0 unfinished)
Ignored 12 untranslated source text(s)
[ 7%] Generating localization/localization_es_ES.qm
Updating 'localization/localization_es_ES.qm'...
Generated 99 translation(s) (99 finished and 0 unfinished)
... (etc ...
Scanning dependencies of target qtpasslib
[ 53%] Building CXX object CMakeFiles/qtpasslib.dir/src/configdialog.cpp.o
[ 55%] Building CXX object CMakeFiles/qtpasslib.dir/src/executor.cpp.o
[ 57%] Building CXX object CMakeFiles/qtpasslib.dir/src/filecontent.cpp.o
[ 59%] Building CXX object CMakeFiles/qtpasslib.dir/src/imitatepass.cpp.o
[ 61%] Building CXX object CMakeFiles/qtpasslib.dir/src/keygendialog.cpp.o
[ 62%] Building CXX object CMakeFiles/qtpasslib.dir/src/mainwindow.cpp.o
[ 64%] Building CXX object CMakeFiles/qtpasslib.dir/src/pass.cpp.o
[ 66%] Building CXX object CMakeFiles/qtpasslib.dir/src/passworddialog.cpp.o
[ 68%] Building CXX object CMakeFiles/qtpasslib.dir/src/qprogressindicator.cpp.o
[ 70%] Building CXX object CMakeFiles/qtpasslib.dir/src/qpushbuttonasqrcode.cpp.o
[ 72%] Building CXX object CMakeFiles/qtpasslib.dir/src/qpushbuttonwithclipboard.cpp.o
[ 74%] Building CXX object CMakeFiles/qtpasslib.dir/src/qtpass.cpp.o
[ 75%] Building CXX object CMakeFiles/qtpasslib.dir/src/qtpasssettings.cpp.o
[ 77%] Building CXX object CMakeFiles/qtpasslib.dir/src/realpass.cpp.o
[ 79%] Building CXX object CMakeFiles/qtpasslib.dir/src/settingsconstants.cpp.o
[ 81%] Building CXX object CMakeFiles/qtpasslib.dir/src/simpletransaction.cpp.o
[ 83%] Building CXX object CMakeFiles/qtpasslib.dir/src/singleapplication.cpp.o
[ 85%] Building CXX object CMakeFiles/qtpasslib.dir/src/storemodel.cpp.o
[ 87%] Building CXX object CMakeFiles/qtpasslib.dir/src/trayicon.cpp.o
[ 88%] Building CXX object CMakeFiles/qtpasslib.dir/src/usersdialog.cpp.o
[ 90%] Building CXX object CMakeFiles/qtpasslib.dir/src/util.cpp.o
[ 92%] Building CXX object CMakeFiles/qtpasslib.dir/qtpasslib_autogen/EWIEGA46WW/qrc_resources.cpp.o
[ 94%] Linking CXX static library libqtpasslib.a
[ 94%] Built target qtpasslib
[ 96%] Automatic UIC for target qtpass
[ 96%] Built target qtpass_autogen
[ 98%] Building CXX object CMakeFiles/qtpass.dir/main/main.cpp.o
[100%] Linking CXX executable qtpass
Undefined symbols for architecture x86_64:
"MainWindow::staticMetaObject", referenced from:
MainWindow::tr(char const*, char const*, int) in libqtpasslib.a(mainwindow.cpp.o)
QMetaObject::Connection QObject::connect<void (MainWindow::*)(QString), void (QtPass::*)(QString)>(QtPrivate::FunctionPointer<void (MainWindow::*)(QString)>::Object const*, void (MainWindow::*)(QString), QtPrivate::FunctionPointer<void (QtPass::*)(QString)>::Object const*, void (QtPass::*)(QString), Qt::ConnectionType) in libqtpasslib.a(qtpass.cpp.o)
std::__1::enable_if<(QtPrivate::FunctionPointer<QtPass::setMainWindow()::$_0>::ArgumentCount) == (-(1)), QMetaObject::Connection>::type QObject::connect<void (MainWindow::*)(), QtPass::setMainWindow()::$_0>(QtPrivate::FunctionPointer<void (MainWindow::*)()>::Object const*, void (MainWindow::*)(), QObject const*, QtPass::setMainWindow()::$_0, Qt::ConnectionType) in libqtpasslib.a(qtpass.cpp.o)
std::__1::enable_if<(QtPrivate::FunctionPointer<QtPass::setMainWindow()::$_1>::ArgumentCount) == (-(1)), QMetaObject::Connection>::type QObject::connect<void (MainWindow::*)(QString), QtPass::setMainWindow()::$_1>(QtPrivate::FunctionPointer<void (MainWindow::*)(QString)>::Object const*, void (MainWindow::*)(QString), QObject const*, QtPass::setMainWindow()::$_1, Qt::ConnectionType) in libqtpasslib.a(qtpass.cpp.o)
"MainWindow::passGitInitNeeded()", referenced from:
ConfigDialog::wizard() in libqtpasslib.a(configdialog.cpp.o)
QtPass::setMainWindow() in libqtpasslib.a(qtpass.cpp.o)
"MainWindow::generateGPGKeyPair(QString)", referenced from:
MainWindow::generateKeyPair(QString, QDialog*) in libqtpasslib.a(mainwindow.cpp.o)
QtPass::setMainWindow() in libqtpasslib.a(qtpass.cpp.o)
"MainWindow::passShowHandlerFinished(QString)", referenced from:
MainWindow::passShowHandler(QString const&) in libqtpasslib.a(mainwindow.cpp.o)
QtPass::setMainWindow() in libqtpasslib.a(qtpass.cpp.o)
"StoreModel::staticMetaObject", referenced from:
StoreModel::tr(char const*, char const*, int) in libqtpasslib.a(storemodel.cpp.o)
"ImitatePass::endReencryptPath()", referenced from:
QtPass::setMainWindow() in libqtpasslib.a(qtpass.cpp.o)
ImitatePass::reencryptPath(QString const&) in libqtpasslib.a(imitatepass.cpp.o)
"ImitatePass::staticMetaObject", referenced from:
QMetaObject::Connection QObject::connect<void (ImitatePass::*)(), void (MainWindow::*)()>(QtPrivate::FunctionPointer<void (ImitatePass::*)()>::Object const*, void (ImitatePass::*)(), QtPrivate::FunctionPointer<void (MainWindow::*)()>::Object const*, void (MainWindow::*)(), Qt::ConnectionType) in libqtpasslib.a(qtpass.cpp.o)
ImitatePass::tr(char const*, char const*, int) in libqtpasslib.a(imitatepass.cpp.o)
"ImitatePass::startReencryptPath()", referenced from:
QtPass::setMainWindow() in libqtpasslib.a(qtpass.cpp.o)
ImitatePass::reencryptPath(QString const&) in libqtpasslib.a(imitatepass.cpp.o)
"UsersDialog::staticMetaObject", referenced from:
UsersDialog::tr(char const*, char const*, int) in libqtpasslib.a(usersdialog.cpp.o)
"ConfigDialog::staticMetaObject", referenced from:
ConfigDialog::tr(char const*, char const*, int) in libqtpasslib.a(configdialog.cpp.o)
"KeygenDialog::staticMetaObject", referenced from:
KeygenDialog::tr(char const*, char const*, int) in libqtpasslib.a(keygendialog.cpp.o)
"QPushButtonAsQRCode::staticMetaObject", referenced from:
QMetaObject::Connection QObject::connect<void (QPushButtonAsQRCode::*)(QString), void (QtPass::*)(QString const&)>(QtPrivate::FunctionPointer<void (QPushButtonAsQRCode::*)(QString)>::Object const*, void (QPushButtonAsQRCode::*)(QString), QtPrivate::FunctionPointer<void (QtPass::*)(QString const&)>::Object const*, void (QtPass::*)(QString const&), Qt::ConnectionType) in libqtpasslib.a(mainwindow.cpp.o)
"QPushButtonAsQRCode::clicked(QString)", referenced from:
MainWindow::addToGridLayout(int, QString const&, QString const&) in libqtpasslib.a(mainwindow.cpp.o)
QPushButtonAsQRCode::buttonClicked(bool) in libqtpasslib.a(qpushbuttonasqrcode.cpp.o)
"DeselectableTreeView::emptyClicked()", referenced from:
MainWindow::MainWindow(QString const&, QWidget*) in libqtpasslib.a(mainwindow.cpp.o)
"DeselectableTreeView::staticMetaObject", referenced from:
QMetaObject::Connection QObject::connect<void (DeselectableTreeView::*)(), void (MainWindow::*)()>(QtPrivate::FunctionPointer<void (DeselectableTreeView::*)()>::Object const*, void (DeselectableTreeView::*)(), QtPrivate::FunctionPointer<void (MainWindow::*)()>::Object const*, void (MainWindow::*)(), Qt::ConnectionType) in libqtpasslib.a(mainwindow.cpp.o)
"QPushButtonWithClipboard::staticMetaObject", referenced from:
QMetaObject::Connection QObject::connect<void (QPushButtonWithClipboard::*)(QString), void (QtPass::*)(QString const&)>(QtPrivate::FunctionPointer<void (QPushButtonWithClipboard::*)(QString)>::Object const*, void (QPushButtonWithClipboard::*)(QString), QtPrivate::FunctionPointer<void (QtPass::*)(QString const&)>::Object const*, void (QtPass::*)(QString const&), Qt::ConnectionType) in libqtpasslib.a(mainwindow.cpp.o)
"QPushButtonWithClipboard::clicked(QString)", referenced from:
MainWindow::addToGridLayout(int, QString const&, QString const&) in libqtpasslib.a(mainwindow.cpp.o)
QPushButtonWithClipboard::buttonClicked(bool) in libqtpasslib.a(qpushbuttonwithclipboard.cpp.o)
"Pass::qt_metacall(QMetaObject::Call, int, void**)", referenced from:
vtable for RealPass in libqtpasslib.a(realpass.cpp.o)
"Pass::qt_metacast(char const*)", referenced from:
vtable for RealPass in libqtpasslib.a(realpass.cpp.o)
"Pass::finishedCopy(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedInit(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedMove(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedShow(QString const&)", referenced from:
MainWindow::copyPasswordFromTreeview() in libqtpasslib.a(mainwindow.cpp.o)
PasswordDialog::PasswordDialog(PasswordConfiguration const&, QWidget*) in libqtpasslib.a(passworddialog.cpp.o)
PasswordDialog::PasswordDialog(QString const&, bool const&, QWidget*) in libqtpasslib.a(passworddialog.cpp.o)
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedInsert(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedRemove(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedGitInit(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedGitPull(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedGitPush(QString const&, QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::processErrorExit(int, QString const&)", referenced from:
PasswordDialog::PasswordDialog(QString const&, bool const&, QWidget*) in libqtpasslib.a(passworddialog.cpp.o)
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::staticMetaObject", referenced from:
QMetaObject::Connection QObject::connect<void (Pass::*)(QString const&), void (MainWindow::*)(QString const&)>(QtPrivate::FunctionPointer<void (Pass::*)(QString const&)>::Object const*, void (Pass::*)(QString const&), QtPrivate::FunctionPointer<void (MainWindow::*)(QString const&)>::Object const*, void (MainWindow::*)(QString const&), Qt::ConnectionType) in libqtpasslib.a(mainwindow.cpp.o)
QMetaObject::Connection QObject::connect<void (Pass::*)(QString const&), void (PasswordDialog::*)(QString const&)>(QtPrivate::FunctionPointer<void (Pass::*)(QString const&)>::Object const*, void (Pass::*)(QString const&), QtPrivate::FunctionPointer<void (PasswordDialog::*)(QString const&)>::Object const*, void (PasswordDialog::*)(QString const&), Qt::ConnectionType) in libqtpasslib.a(passworddialog.cpp.o)
QMetaObject::Connection QObject::connect<void (Pass::*)(int, QString const&), bool (QWidget::*)()>(QtPrivate::FunctionPointer<void (Pass::*)(int, QString const&)>::Object const*, void (Pass::*)(int, QString const&), QtPrivate::FunctionPointer<bool (QWidget::*)()>::Object const*, bool (QWidget::*)(), Qt::ConnectionType) in libqtpasslib.a(passworddialog.cpp.o)
Pass::tr(char const*, char const*, int) in libqtpasslib.a(pass.cpp.o)
QMetaObject::Connection QObject::connect<void (Pass::*)(QProcess::ProcessError), void (QtPass::*)(QProcess::ProcessError)>(QtPrivate::FunctionPointer<void (Pass::*)(QProcess::ProcessError)>::Object const*, void (Pass::*)(QProcess::ProcessError), QtPrivate::FunctionPointer<void (QtPass::*)(QProcess::ProcessError)>::Object const*, void (QtPass::*)(QProcess::ProcessError), Qt::ConnectionType) in libqtpasslib.a(qtpass.cpp.o)
QMetaObject::Connection QObject::connect<void (Pass::*)(int, QString const&), void (QtPass::*)(int, QString const&)>(QtPrivate::FunctionPointer<void (Pass::*)(int, QString const&)>::Object const*, void (Pass::*)(int, QString const&), QtPrivate::FunctionPointer<void (QtPass::*)(int, QString const&)>::Object const*, void (QtPass::*)(int, QString const&), Qt::ConnectionType) in libqtpasslib.a(qtpass.cpp.o)
QMetaObject::Connection QObject::connect<void (Pass::*)(QString, QString), void (MainWindow::*)(QString, QString)>(QtPrivate::FunctionPointer<void (Pass::*)(QString, QString)>::Object const*, void (Pass::*)(QString, QString), QtPrivate::FunctionPointer<void (MainWindow::*)(QString, QString)>::Object const*, void (MainWindow::*)(QString, QString), Qt::ConnectionType) in libqtpasslib.a(qtpass.cpp.o)
...
"Pass::finishedOtpGenerate(QString const&)", referenced from:
Pass::finished(int, int, QString const&, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::startingExecuteWrapper()", referenced from:
Pass::Pass() in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::finishedGenerateGPGKeys(QString const&, QString const&)", referenced from:
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::error(QProcess::ProcessError)", referenced from:
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
"Pass::critical(QString, QString)", referenced from:
Pass::Generate_b(unsigned int, QString const&) in libqtpasslib.a(pass.cpp.o)
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
ImitatePass::Insert(QString, QString, bool) in libqtpasslib.a(imitatepass.cpp.o)
ImitatePass::Init(QString, QList<UserInfo> const&) in libqtpasslib.a(imitatepass.cpp.o)
ImitatePass::reencryptPath(QString const&) in libqtpasslib.a(imitatepass.cpp.o)
"Pass::statusMsg(QString, int)", referenced from:
QtPass::connectPassSignalHandlers(Pass*) in libqtpasslib.a(qtpass.cpp.o)
ImitatePass::reencryptPath(QString const&) in libqtpasslib.a(imitatepass.cpp.o)
"QtPass::staticMetaObject", referenced from:
QtPass::tr(char const*, char const*, int) in libqtpasslib.a(qtpass.cpp.o)
"Executor::staticMetaObject", referenced from:
QMetaObject::Connection QObject::connect<void (Executor::*)(int, int, QString const&, QString const&), void (Pass::*)(int, int, QString const&, QString const&)>(QtPrivate::FunctionPointer<void (Executor::*)(int, int, QString const&, QString const&)>::Object const*, void (Executor::*)(int, int, QString const&, QString const&), QtPrivate::FunctionPointer<void (Pass::*)(int, int, QString const&, QString const&)>::Object const*, void (Pass::*)(int, int, QString const&, QString const&), Qt::ConnectionType) in libqtpasslib.a(pass.cpp.o)
QMetaObject::Connection QObject::connect<void (Executor::*)(), void (Pass::*)()>(QtPrivate::FunctionPointer<void (Executor::*)()>::Object const*, void (Executor::*)(), QtPrivate::FunctionPointer<void (Pass::*)()>::Object const*, void (Pass::*)(), Qt::ConnectionType) in libqtpasslib.a(pass.cpp.o)
"Executor::finished(int, int, QString const&, QString const&)", referenced from:
Pass::Pass() in libqtpasslib.a(pass.cpp.o)
Executor::finished(int, QProcess::ExitStatus) in libqtpasslib.a(executor.cpp.o)
"Executor::starting()", referenced from:
Pass::Pass() in libqtpasslib.a(pass.cpp.o)
Executor::Executor(QObject*) in libqtpasslib.a(executor.cpp.o)
"TrayIcon::staticMetaObject", referenced from:
TrayIcon::tr(char const*, char const*, int) in libqtpasslib.a(trayicon.cpp.o)
"Pass::metaObject() const", referenced from:
vtable for RealPass in libqtpasslib.a(realpass.cpp.o)
"typeinfo for Pass", referenced from:
typeinfo for RealPass in libqtpasslib.a(realpass.cpp.o)
"vtable for MainWindow", referenced from:
MainWindow::MainWindow(QString const&, QWidget*) in libqtpasslib.a(mainwindow.cpp.o)
MainWindow::~MainWindow() in libqtpasslib.a(mainwindow.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for StoreModel", referenced from:
StoreModel::~StoreModel() in libqtpasslib.a(mainwindow.cpp.o)
StoreModel::StoreModel() in libqtpasslib.a(storemodel.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for ImitatePass", referenced from:
ImitatePass::ImitatePass() in libqtpasslib.a(imitatepass.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for UsersDialog", referenced from:
UsersDialog::UsersDialog(QString, QWidget*) in libqtpasslib.a(usersdialog.cpp.o)
UsersDialog::~UsersDialog() in libqtpasslib.a(usersdialog.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for ConfigDialog", referenced from:
ConfigDialog::ConfigDialog(MainWindow*) in libqtpasslib.a(configdialog.cpp.o)
ConfigDialog::~ConfigDialog() in libqtpasslib.a(configdialog.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for KeygenDialog", referenced from:
KeygenDialog::KeygenDialog(ConfigDialog*) in libqtpasslib.a(keygendialog.cpp.o)
KeygenDialog::~KeygenDialog() in libqtpasslib.a(keygendialog.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for PasswordDialog", referenced from:
PasswordDialog::PasswordDialog(PasswordConfiguration const&, QWidget*) in libqtpasslib.a(passworddialog.cpp.o)
PasswordDialog::PasswordDialog(QString const&, bool const&, QWidget*) in libqtpasslib.a(passworddialog.cpp.o)
PasswordDialog::~PasswordDialog() in libqtpasslib.a(passworddialog.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for QProgressIndicator", referenced from:
QProgressIndicator::QProgressIndicator(QWidget*) in libqtpasslib.a(qprogressindicator.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for QPushButtonAsQRCode", referenced from:
QPushButtonAsQRCode::QPushButtonAsQRCode(QString const&, QWidget*) in libqtpasslib.a(qpushbuttonasqrcode.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for DeselectableTreeView", referenced from:
DeselectableTreeView::DeselectableTreeView(QWidget*) in libqtpasslib.a(mainwindow.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for QPushButtonWithClipboard", referenced from:
QPushButtonWithClipboard::QPushButtonWithClipboard(QString const&, QWidget*) in libqtpasslib.a(qpushbuttonwithclipboard.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for Pass", referenced from:
Pass::Pass() in libqtpasslib.a(pass.cpp.o)
Pass::~Pass() in libqtpasslib.a(imitatepass.cpp.o)
Pass::~Pass() in libqtpasslib.a(realpass.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for QtPass", referenced from:
QtPass::QtPass(MainWindow*) in libqtpasslib.a(qtpass.cpp.o)
QtPass::~QtPass() in libqtpasslib.a(qtpass.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for Executor", referenced from:
Executor::~Executor() in libqtpasslib.a(pass.cpp.o)
Executor::~Executor() in libqtpasslib.a(imitatepass.cpp.o)
Executor::Executor(QObject*) in libqtpasslib.a(executor.cpp.o)
Executor::~Executor() in libqtpasslib.a(realpass.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"vtable for TrayIcon", referenced from:
TrayIcon::TrayIcon(QMainWindow*) in libqtpasslib.a(trayicon.cpp.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [qtpass] Error 1
make[1]: *** [CMakeFiles/qtpass.dir/all] Error 2
make: *** [all] Error 2
My first PR as it tourned out that the fix for my issue could be really fast.