forked from cheng/wallet
removed redundant std_uniques, and fixed
add name so it does not flash so horribly Massively violating dry - I need to extract the repeated code into a struct that does the cleanup when it is destroyed
This commit is contained in:
parent
53cd580da1
commit
55d0d69c8f
@ -17,8 +17,7 @@ namespace ro {
|
||||
|
||||
//Owns a database connection and closes it when it is deconstructed
|
||||
//Has move semantics
|
||||
class dbconnect : public std::unique_ptr<ISqlite3> {
|
||||
public:
|
||||
struct dbconnect : std::unique_ptr<ISqlite3> {
|
||||
dbconnect(const wxFileName&); //And here we wrap our Cish implementation in C++ish implementation
|
||||
dbconnect() = delete;
|
||||
~dbconnect() = default; //Our base class takes care of it
|
||||
@ -200,7 +199,7 @@ class sql_insert_name {
|
||||
ro::sql csql_into_names;
|
||||
public:
|
||||
sql_insert_name(ISqlite3* p) :
|
||||
csql_into_names(p, R"|(INSERT OR FAIL INTO "UserZookoIDs" VALUES(?1, ?2);)|"){}
|
||||
csql_into_names(p, R"|(INSERT OR FAIL INTO "UserZookoIDs" VALUES(?1, ?2);)|"){}
|
||||
sql_insert_name(const std::unique_ptr<ISqlite3>& p) : sql_insert_name(p.get()) {}
|
||||
void operator()(const char* psz, const ristretto255::point& pt) {
|
||||
csql_into_names.do_one(psz,pt);
|
||||
|
@ -7,7 +7,9 @@ display_wallet::display_wallet(wxWindow* parent, wxFileName& walletfile) :
|
||||
m_db(walletfile), m_DisplayWalletEditMenu(1),
|
||||
m_read_names_and_keys(m_db, R"|(SELECT * FROM "UserZookoIDs"; )|"),
|
||||
m_read_from_misc(m_db),
|
||||
m_find_position(m_db, R"|( SELECT COUNT(*) FROM UserZookoIDs WHERE LOWER("name")<LOWER(?1) AND "name"<?1;)|")
|
||||
m_insert_name(m_db),
|
||||
m_find_position(m_db, R"|( SELECT COUNT(*) FROM UserZookoIDs
|
||||
WHERE LOWER("name")<LOWER(?1) AND "name"<?1;)|")
|
||||
{
|
||||
wxLogMessage(wxT("Loading %s"), walletfile.GetFullPath());
|
||||
try {
|
||||
@ -68,12 +70,50 @@ and a public key defined by the name and the wallet master secret)",
|
||||
{
|
||||
std::string zookoNickname(dialog.GetValue().ToUTF8());
|
||||
auto zookoNickname_psz = zookoNickname.c_str();
|
||||
(*m_insert_name)(
|
||||
auto pubkey = m_MasterSecret(zookoNickname_psz).timesBase();
|
||||
m_insert_name(
|
||||
zookoNickname_psz,
|
||||
m_MasterSecret(zookoNickname_psz).timesBase()
|
||||
pubkey
|
||||
);
|
||||
refresh_from_database();
|
||||
m_find_position.read_one(zookoNickname_psz);
|
||||
auto sizer = this->GetSizer();
|
||||
auto dirty_area = sizer->ComputeFittingClientSize(singletonFrame);
|
||||
auto m_lsizer = sizer->GetItem((size_t)0)->GetSizer();
|
||||
assert(m_lsizer);
|
||||
auto m_rsizer = sizer->GetItem(1)->GetSizer();
|
||||
assert(m_rsizer);
|
||||
auto position = m_find_position.column<int64_t>(0);
|
||||
m_lSizer->Insert(position,
|
||||
new wxStaticText(
|
||||
this,
|
||||
wxID_ANY,
|
||||
zookoNickname_psz,
|
||||
wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT | wxEXPAND | wxFIXED_MINSIZE | wxST_ELLIPSIZE_END
|
||||
),
|
||||
10,
|
||||
wxALL, // and make border all around
|
||||
2);
|
||||
m_rSizer->Insert(position,
|
||||
new wxStaticText(
|
||||
this,
|
||||
wxID_ANY,
|
||||
"#" + base58(pubkey).operator std::string(),
|
||||
wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT | wxEXPAND | wxFIXED_MINSIZE | wxST_ELLIPSIZE_END
|
||||
),
|
||||
10,
|
||||
wxALL, // and make border all around
|
||||
2);
|
||||
|
||||
auto desired_size = sizer->ComputeFittingClientSize(singletonFrame);
|
||||
dirty_area.IncTo(desired_size);
|
||||
//singletonFrame->SetMinClientSize(desired_size);
|
||||
auto clientSize = singletonFrame->GetClientSize();
|
||||
desired_size.IncTo(clientSize);
|
||||
if (desired_size.GetHeight() > clientSize.GetHeight()
|
||||
|| desired_size.GetWidth() > clientSize.GetWidth()
|
||||
)singletonFrame->SetClientSize(desired_size);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -9,7 +9,7 @@ private:
|
||||
ro::dbconnect m_db;
|
||||
sql_read_from_misc m_read_from_misc;
|
||||
ro::sql m_read_names_and_keys;
|
||||
std::unique_ptr <sql_insert_name> m_insert_name;
|
||||
sql_insert_name m_insert_name;
|
||||
ro::sql m_find_position;
|
||||
|
||||
ristretto255::CMasterSecret m_MasterSecret;
|
||||
|
Loading…
Reference in New Issue
Block a user