Edit owner trust level.

Inplace editing with a combobox if user is allowed. in app config file.
This commit is contained in:
SET
2020-10-25 17:28:47 +01:00
parent ca2105733b
commit e434315940
16 changed files with 304 additions and 28 deletions

View File

@@ -29,6 +29,7 @@ using namespace std;
"UserCommonName1" : {
"canImport" : true,
"canDelete" : true,
"canEditOwnerTrust" : true,
"privKeyIds" : [
"fullKeyId1",
"fullKeyId2"
@@ -115,6 +116,17 @@ bool AppConfig::CanDelete() const
return cnObject.get("canDelete");
}
bool AppConfig::CanEditOwnerTrust() const
{
const WString commonName = GetSubjectDnAttribute(WSslCertificate::DnAttributeName::CommonName);
if (!m_SubjectCNObject.contains(commonName.toUTF8()))
return false;
Json::Object cnObject = m_SubjectCNObject.get(commonName.toUTF8());
if (!cnObject.contains("canEditOwnerTrust"))
return false;
return cnObject.get("canEditOwnerTrust");
}
vector<WString> AppConfig::PrivateKeyIds() const
{
// List private key identifiers.

View File

@@ -42,6 +42,12 @@ public:
* @return
*/
bool CanDelete() const;
/**
* Allows to edit trust in key owner. Users who don't manage private keys
* can to that too.
* @return
*/
bool CanEditOwnerTrust() const;
/**
* List of full private key identifiers. The user may delete these private keys.
* Must be full keyid, short keyid or fingerprint.

View File

@@ -78,3 +78,14 @@ const string GpgMEWorker::ImportKey(const char * filePath, Error& e)
fclose(kFp);
return keyid;
}
const Error GpgMEWorker::EditOwnerTrust(const char* anyFullId, GpgME::Key::OwnerTrust trustLevel)
{
Error e;
Key k = FindKey(anyFullId, e, false);
if (e.code() != 0)
return e;
SetOwnerTrustEditInteractor * interactor = new SetOwnerTrustEditInteractor(trustLevel);
GpgME::Data d; // Internal processing data
return m_ctx->edit(k, std::unique_ptr<SetOwnerTrustEditInteractor> (interactor), d);
}

View File

@@ -13,10 +13,12 @@
#include <gpgme++/context.h>
#include <gpgme++/error.h>
#include <gpgme++/key.h>
#include <gpgme++/gpgsetownertrusteditinteractor.h>
#include <vector>
using namespace std;
using namespace GpgME;
/**
* Main class for GPGME OP, except deleting keys.
*/
@@ -50,10 +52,34 @@ public:
* @return the keyid
*/
const string ImportKey(const char * filePath, Error& e);
/**
* Inplace editing of owner trust if allowed
* @param anyFullId
* @param trustLevel : New trust level in key owner
* @return
*/
const Error EditOwnerTrust(const char * anyFullId, GpgME::Key::OwnerTrust trustLevel);
private:
Context * m_ctx;
};
/**
* Edit trust in key owner
*/
class SetOwnerTrustEditInteractor : public GpgSetOwnerTrustEditInteractor
{
public:
/**
*
* @param ownerTrust : New trust level
*/
SetOwnerTrustEditInteractor(GpgME::Key::OwnerTrust ownerTrust)
: GpgSetOwnerTrustEditInteractor(ownerTrust) {}
virtual ~SetOwnerTrustEditInteractor() {}
};
#endif /* GPGMEWORKER_H */

View File

@@ -12,6 +12,7 @@
#include <iostream>
#include <Wt/WBreak.h>
#include <Wt/WPushButton.h>
#include <Wt/WComboBox.h>
#include <Wt/WGridLayout.h>
#include <Wt/WHBoxLayout.h>
#include <Wt/WVBoxLayout.h>
@@ -55,11 +56,13 @@ K7Main::K7Main(const WEnvironment& env)
OwnerTrustLevel[GpgME::Key::OwnerTrust::Undefined] = TR("UidUndefined");
OwnerTrustLevel[GpgME::Key::OwnerTrust::Unknown] = TR("UidUnknown");
m_uploader = NULL; m_deleter = NULL;
m_keyEdit = new KeyEdit(this);
}
K7Main::~K7Main()
{
delete m_config; delete m_uploader; delete m_deleter;
delete m_keyEdit;
}
void
@@ -255,7 +258,16 @@ void K7Main::DisplayKeys(const vector<GpgME::Key>& kList, const WString& grpLabe
anc->setAttributeValue("hasSecret", k.hasSecret() ? "1" : "0");
anc->clicked().connect(std::bind(&K7Main::OnKeyAnchorClicked, this, anc));
keyNode->setColumnWidget(1, unique_ptr<WAnchor> (anc));
keyNode->setColumnWidget(2, cpp14::make_unique<WText> (OwnerTrustLevel[k.ownerTrust()]));
WText * lblOwnerTrust = new WText(OwnerTrustLevel[k.ownerTrust()]);
if (m_config->CanEditOwnerTrust()) {
if (!m_keyEdit->IsOurKey(k.primaryFingerprint())) {
lblOwnerTrust->doubleClicked().connect(std::bind(&KeyEdit::OnOwnerTrustDoubleClicked, m_keyEdit, keyNode));
lblOwnerTrust->setToolTip(TR("TTTDoubleCLick"));
} else {
lblOwnerTrust->setToolTip(TR("TTTYourKey"));
}
}
keyNode->setColumnWidget(2, unique_ptr<WText> (lblOwnerTrust));
keyNode->setColumnWidget(3, cpp14::make_unique<WText> (k.primaryFingerprint()));
grpNode->addChildNode(unique_ptr<WTreeTableNode> (keyNode));
}

View File

@@ -25,11 +25,16 @@
#include "PopupUploader.h"
#include "PopupDeleter.h"
#include "TransientMessageWidget.h"
#include "KeyEdit.h"
#include "global.h"
using namespace Wt;
class KeyEdit;
class K7Main : public WApplication
{
friend class KeyEdit;
public:
K7Main(const WEnvironment& env);
virtual ~K7Main();
@@ -39,9 +44,7 @@ private:
/**
* Translate UID trusts to string
*/
typedef map<int, WString> UidValidityMap;
UidValidityMap UidValidities;
typedef map<int, WString> OwnerTrustMap;
OwnerTrustMap OwnerTrustLevel;
AppConfig * m_config;
WGridLayout * m_grlMain;
@@ -56,6 +59,7 @@ private:
WTreeTable * m_ttbSubKeys;
Uploader * m_uploader;
Deleter * m_deleter;
KeyEdit * m_keyEdit;
/**
* Finds public keys as per criteria,
* and private keys if any is declared in config file for current client.

102
KeyEdit.cpp Normal file
View File

@@ -0,0 +1,102 @@
/*
* File: KeyEdit.cpp
* Author: SET - nmset@yandex.com
* License : GPL v2
* Copyright SET - © 2019
*
* Created on October 25, 2020, 10:38 AM
*/
#include "KeyEdit.h"
#include <Wt/WText.h>
#include <Wt/WStandardItemModel.h>
#include <Wt/WStandardItem.h>
#include "GpgMEWorker.h"
using namespace std;
KeyEdit::KeyEdit(K7Main * owner)
{
m_owner = owner;
}
KeyEdit::~KeyEdit()
{
}
void KeyEdit::OnOwnerTrustDoubleClicked(WTreeTableNode * keyNode)
{
// We ought to trust our own keys
const WText * lblFpr = static_cast<WText*> (keyNode->columnWidget(3));
if (IsOurKey(lblFpr->text()))
return;
WComboBox * cmbOwnerTrust = new WComboBox();
FillOwnerTrustCombo(cmbOwnerTrust);
cmbOwnerTrust->blurred().connect(std::bind(&KeyEdit::OnOwnerTrustBlurred, this, keyNode));
WText * lblOwnerTrust = static_cast<WText*> (keyNode->columnWidget(2));
cmbOwnerTrust->setCurrentIndex(cmbOwnerTrust->findText(lblOwnerTrust->text()));
// If nothing gets changed, don't go to engine.
cmbOwnerTrust->setAttributeValue("previousTrustLevel", std::to_string(cmbOwnerTrust->currentIndex()));
keyNode->setColumnWidget(2, unique_ptr<WComboBox> (cmbOwnerTrust));
// +++
cmbOwnerTrust->setFocus();
}
void KeyEdit::OnOwnerTrustBlurred(WTreeTableNode* keyNode)
{
WComboBox * cmbOwnerTrust = static_cast<WComboBox*> (keyNode->columnWidget(2));
WText * lblOwnerTrust = new WText(cmbOwnerTrust->currentText());
lblOwnerTrust->doubleClicked().connect(std::bind(&KeyEdit::OnOwnerTrustDoubleClicked, this, keyNode));
const WText * lblFpr = static_cast<WText*> (keyNode->columnWidget(3));
const uint newTrustLevel = cmbOwnerTrust->currentIndex();
const WString previousTrustLevel = cmbOwnerTrust->attributeValue("previousTrustLevel");
keyNode->setColumnWidget(2, unique_ptr<WText> (lblOwnerTrust));
// If nothing was changed, don't go to engine.
if (WString(std::to_string(newTrustLevel)) == previousTrustLevel)
return;
GpgMEWorker gpgWorker;
GpgME::Error e = gpgWorker.EditOwnerTrust(lblFpr->text().toUTF8().c_str(), (GpgME::Key::OwnerTrust) newTrustLevel);
if (e.code() != 0)
{
lblOwnerTrust->setText(previousTrustLevel);
m_owner->m_tmwMessage->SetText(TR("OwnerTrustFailure"));
return;
}
m_owner->m_tmwMessage->SetText(TR("OwnerTrustSuccess"));
}
void KeyEdit::FillOwnerTrustCombo(WComboBox * cmb)
{
/*
* We should perhaps exclude OwnerTrust::Ultimate.
* kleopatra doesn't do that.
*/
shared_ptr<WStandardItemModel> siModel = make_shared<WStandardItemModel> ();
OwnerTrustMap OwnerTrustLevel = m_owner->OwnerTrustLevel;
vector<unique_ptr < WStandardItem>> colIndex;
vector<unique_ptr < WStandardItem>> colText;
OwnerTrustMap::iterator it;
for (it = OwnerTrustLevel.begin(); it != OwnerTrustLevel.end(); it++)
{
colIndex.push_back(cpp14::make_unique<WStandardItem> (std::to_string((*it).first)));
colText.push_back(cpp14::make_unique<WStandardItem> ((*it).second));
}
siModel->appendColumn(std::move(colIndex));
siModel->appendColumn(std::move(colText));
cmb->clear();
cmb->setModel(siModel);
cmb->setModelColumn(1);
}
bool KeyEdit::IsOurKey(const WString& fpr)
{
vector<WString> ourKeys = m_owner->m_config->PrivateKeyIds();
vector<WString> ::iterator it;
for (it = ourKeys.begin(); it != ourKeys.end(); it++)
{
if (*it == fpr)
return true;
}
return false;
}

54
KeyEdit.h Normal file
View File

@@ -0,0 +1,54 @@
/*
* File: KeyEdit.h
* Author: SET - nmset@yandex.com
* License : GPL v2
* Copyright SET - © 2019
*
* Created on October 25, 2020, 10:38 AM
*/
#ifndef KEYEDIT_H
#define KEYEDIT_H
#include <Wt/WTreeTableNode.h>
#include "K7Main.h"
#include <Wt/WComboBox.h>
using namespace Wt;
class K7Main;
/**
* Some key editing functionalities are or will be implemented here. For now,
* only owner trust level is editable.
*/
class KeyEdit
{
public:
KeyEdit(K7Main * owner);
virtual ~KeyEdit();
/**
* Shows a combobox with all trust levels
* @param keyNode
*/
void OnOwnerTrustDoubleClicked(WTreeTableNode * keyNode);
/**
* Saves any changes in trust level
* @param keyNode
*/
void OnOwnerTrustBlurred(WTreeTableNode * keyNode);
/**
* If the fingerprint is that of a private key we manage, returns true.
* @param fpr
* @return
*/
bool IsOurKey(const WString& fpr);
private:
K7Main * m_owner;
void FillOwnerTrustCombo(WComboBox * cmb);
};
#endif /* KEYEDIT_H */

View File

@@ -63,4 +63,9 @@
<message id='ImportSuccess'>Import success : </message>
<message id='ImportError'>Uploaded file could not be imported in the keyring</message>
<message id='DeleteSuccess'>Delete success : </message>
<message id='TTTDoubleCLick'>Double click to edit</message>
<message id='TTTYourKey'>This is your key</message>
<message id='OwnerTrustSuccess'>Owner trust level succesfully changed</message>
<message id='OwnerTrustFailure'>Owner trust level failed to be changed</message>
</messages>

View File

@@ -63,4 +63,9 @@
<message id='ImportSuccess'>Importation réussie : </message>
<message id='ImportError'>Le fichier téléchargé n'a pu être importé dans le trousseau</message>
<message id='DeleteSuccess'>Suppression réussie : </message>
<message id='TTTDoubleCLick'>Double cliquez pour éditer</message>
<message id='TTTYourKey'>C'est votre clé</message>
<message id='OwnerTrustSuccess'>Confiance dans la certification changée avec succès</message>
<message id='OwnerTrustFailure'>Échec de changement de la confiance dans la certification</message>
</messages>

View File

@@ -3,6 +3,7 @@
"user1" : {
"canImport" : true,
"canDelete" : true,
"canEditOwnerTrust" : true,
"privKeyIds" : [
"FullKeyId1",
"FullKeyId2"

View File

@@ -21,6 +21,9 @@ const WString _APPVERSION_("1");
const WString _SPACE_(" ");
const WString _COLON_(":");
typedef map<int, WString> UidValidityMap;
typedef map<int, WString> OwnerTrustMap;
#endif /* GLOBAL_H */

View File

@@ -39,6 +39,7 @@ OBJECTFILES= \
${OBJECTDIR}/GpgMECWorker.o \
${OBJECTDIR}/GpgMEWorker.o \
${OBJECTDIR}/K7Main.o \
${OBJECTDIR}/KeyEdit.o \
${OBJECTDIR}/PopupDeleter.o \
${OBJECTDIR}/PopupUploader.o \
${OBJECTDIR}/TransientMessageWidget.o \
@@ -72,42 +73,47 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/k7: ${OBJECTFILES}
${OBJECTDIR}/AppConfig.o: AppConfig.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/AppConfig.o AppConfig.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/AppConfig.o AppConfig.cpp
${OBJECTDIR}/GpgMECWorker.o: GpgMECWorker.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMECWorker.o GpgMECWorker.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMECWorker.o GpgMECWorker.cpp
${OBJECTDIR}/GpgMEWorker.o: GpgMEWorker.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMEWorker.o GpgMEWorker.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMEWorker.o GpgMEWorker.cpp
${OBJECTDIR}/K7Main.o: K7Main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/K7Main.o K7Main.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/K7Main.o K7Main.cpp
${OBJECTDIR}/KeyEdit.o: KeyEdit.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/KeyEdit.o KeyEdit.cpp
${OBJECTDIR}/PopupDeleter.o: PopupDeleter.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupDeleter.o PopupDeleter.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupDeleter.o PopupDeleter.cpp
${OBJECTDIR}/PopupUploader.o: PopupUploader.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupUploader.o PopupUploader.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupUploader.o PopupUploader.cpp
${OBJECTDIR}/TransientMessageWidget.o: TransientMessageWidget.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TransientMessageWidget.o TransientMessageWidget.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TransientMessageWidget.o TransientMessageWidget.cpp
${OBJECTDIR}/main.o: main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
$(COMPILE.cc) -O2 -s -DLARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
# Subprojects
.build-subprojects:

View File

@@ -39,6 +39,7 @@ OBJECTFILES= \
${OBJECTDIR}/GpgMECWorker.o \
${OBJECTDIR}/GpgMEWorker.o \
${OBJECTDIR}/K7Main.o \
${OBJECTDIR}/KeyEdit.o \
${OBJECTDIR}/PopupDeleter.o \
${OBJECTDIR}/PopupUploader.o \
${OBJECTDIR}/TransientMessageWidget.o \
@@ -72,42 +73,47 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/k7: ${OBJECTFILES}
${OBJECTDIR}/AppConfig.o: AppConfig.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/AppConfig.o AppConfig.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/AppConfig.o AppConfig.cpp
${OBJECTDIR}/GpgMECWorker.o: GpgMECWorker.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMECWorker.o GpgMECWorker.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMECWorker.o GpgMECWorker.cpp
${OBJECTDIR}/GpgMEWorker.o: GpgMEWorker.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMEWorker.o GpgMEWorker.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMEWorker.o GpgMEWorker.cpp
${OBJECTDIR}/K7Main.o: K7Main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/K7Main.o K7Main.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/K7Main.o K7Main.cpp
${OBJECTDIR}/KeyEdit.o: KeyEdit.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/KeyEdit.o KeyEdit.cpp
${OBJECTDIR}/PopupDeleter.o: PopupDeleter.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupDeleter.o PopupDeleter.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupDeleter.o PopupDeleter.cpp
${OBJECTDIR}/PopupUploader.o: PopupUploader.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupUploader.o PopupUploader.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupUploader.o PopupUploader.cpp
${OBJECTDIR}/TransientMessageWidget.o: TransientMessageWidget.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TransientMessageWidget.o TransientMessageWidget.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TransientMessageWidget.o TransientMessageWidget.cpp
${OBJECTDIR}/main.o: main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
$(COMPILE.cc) -g -DDEVTIME -I/usr/local/Wt-Debug/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
# Subprojects
.build-subprojects:

View File

@@ -39,6 +39,7 @@ OBJECTFILES= \
${OBJECTDIR}/GpgMECWorker.o \
${OBJECTDIR}/GpgMEWorker.o \
${OBJECTDIR}/K7Main.o \
${OBJECTDIR}/KeyEdit.o \
${OBJECTDIR}/PopupDeleter.o \
${OBJECTDIR}/PopupUploader.o \
${OBJECTDIR}/TransientMessageWidget.o \
@@ -72,42 +73,47 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/k7: ${OBJECTFILES}
${OBJECTDIR}/AppConfig.o: AppConfig.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/AppConfig.o AppConfig.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/AppConfig.o AppConfig.cpp
${OBJECTDIR}/GpgMECWorker.o: GpgMECWorker.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMECWorker.o GpgMECWorker.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMECWorker.o GpgMECWorker.cpp
${OBJECTDIR}/GpgMEWorker.o: GpgMEWorker.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMEWorker.o GpgMEWorker.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/GpgMEWorker.o GpgMEWorker.cpp
${OBJECTDIR}/K7Main.o: K7Main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/K7Main.o K7Main.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/K7Main.o K7Main.cpp
${OBJECTDIR}/KeyEdit.o: KeyEdit.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/KeyEdit.o KeyEdit.cpp
${OBJECTDIR}/PopupDeleter.o: PopupDeleter.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupDeleter.o PopupDeleter.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupDeleter.o PopupDeleter.cpp
${OBJECTDIR}/PopupUploader.o: PopupUploader.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupUploader.o PopupUploader.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/PopupUploader.o PopupUploader.cpp
${OBJECTDIR}/TransientMessageWidget.o: TransientMessageWidget.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TransientMessageWidget.o TransientMessageWidget.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/TransientMessageWidget.o TransientMessageWidget.cpp
${OBJECTDIR}/main.o: main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
$(COMPILE.cc) -O2 -s -I/usr/local/Wt/include -I/usr/include/gpgme++ -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
# Subprojects
.build-subprojects:

View File

@@ -8,6 +8,7 @@
<itemPath>GpgMECWorker.h</itemPath>
<itemPath>GpgMEWorker.h</itemPath>
<itemPath>K7Main.h</itemPath>
<itemPath>KeyEdit.h</itemPath>
<itemPath>PopupDeleter.h</itemPath>
<itemPath>PopupUploader.h</itemPath>
<itemPath>TransientMessageWidget.h</itemPath>
@@ -26,6 +27,7 @@
<itemPath>GpgMECWorker.cpp</itemPath>
<itemPath>GpgMEWorker.cpp</itemPath>
<itemPath>K7Main.cpp</itemPath>
<itemPath>KeyEdit.cpp</itemPath>
<itemPath>PopupDeleter.cpp</itemPath>
<itemPath>PopupUploader.cpp</itemPath>
<itemPath>TransientMessageWidget.cpp</itemPath>
@@ -55,6 +57,7 @@
<ccTool>
<incDir>
<pElem>/usr/local/Wt-Debug/include</pElem>
<pElem>/usr/include/gpgme++</pElem>
</incDir>
<commandLine>-Wno-deprecated -Wno-deprecated-declarations</commandLine>
<preprocessorList>
@@ -89,6 +92,10 @@
</item>
<item path="K7Main.h" ex="false" tool="3" flavor2="0">
</item>
<item path="KeyEdit.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="KeyEdit.h" ex="false" tool="3" flavor2="0">
</item>
<item path="PopupDeleter.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="PopupDeleter.h" ex="false" tool="3" flavor2="0">
@@ -126,6 +133,7 @@
<stripSymbols>true</stripSymbols>
<incDir>
<pElem>/usr/local/Wt/include</pElem>
<pElem>/usr/include/gpgme++</pElem>
</incDir>
<commandLine>-Wno-deprecated -Wno-deprecated-declarations</commandLine>
</ccTool>
@@ -164,6 +172,10 @@
</item>
<item path="K7Main.h" ex="false" tool="3" flavor2="0">
</item>
<item path="KeyEdit.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="KeyEdit.h" ex="false" tool="3" flavor2="0">
</item>
<item path="PopupDeleter.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="PopupDeleter.h" ex="false" tool="3" flavor2="0">
@@ -201,6 +213,7 @@
<stripSymbols>true</stripSymbols>
<incDir>
<pElem>/usr/local/Wt/include</pElem>
<pElem>/usr/include/gpgme++</pElem>
</incDir>
<commandLine>-Wno-deprecated -Wno-deprecated-declarations</commandLine>
<preprocessorList>
@@ -243,6 +256,10 @@
</item>
<item path="K7Main.h" ex="false" tool="3" flavor2="0">
</item>
<item path="KeyEdit.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="KeyEdit.h" ex="false" tool="3" flavor2="0">
</item>
<item path="PopupDeleter.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="PopupDeleter.h" ex="false" tool="3" flavor2="0">