forked from cheng/wallet
fixed add name UI
Error handling in add name still horribly broken
This commit is contained in:
parent
55929ac9c8
commit
5b37e32a81
@ -183,12 +183,15 @@ class sql_insert_name {
|
||||
ro::sql csql_into_names;
|
||||
ro::sql csql_namekey_into_keys;
|
||||
ro::sql csql_commit;
|
||||
ro::sql csql_rollback;
|
||||
public:
|
||||
sql_insert_name(ISqlite3* p) :
|
||||
csql_begin(p, R"|(BEGIN;)|"),
|
||||
csql_into_names(p, R"|(INSERT OR ROLLBACK INTO "Names" VALUES(?1);)|"),
|
||||
csql_namekey_into_keys(p, R"|(INSERT OR ROLLBACK INTO "Keys" VALUES(?1, last_insert_rowid(), 1);)|"),
|
||||
csql_commit(p, R"|(COMMIT;)|") {}
|
||||
csql_commit(p, R"|(COMMIT;)|"),
|
||||
csql_rollback(p, R"|(ROLLBACK;)|")
|
||||
{}
|
||||
sql_insert_name(const std::unique_ptr<ISqlite3>& p) : sql_insert_name(p.get()) {}
|
||||
void operator()(const char* psz, const ristretto255::point& pt) {
|
||||
csql_begin.do_one();
|
||||
@ -197,7 +200,7 @@ public:
|
||||
csql_namekey_into_keys.do_one(pt);
|
||||
}
|
||||
catch (const std::exception & e) {
|
||||
csql_commit.do_one();
|
||||
csql_rollback.do_one();
|
||||
throw e;
|
||||
}
|
||||
csql_commit.do_one();
|
||||
|
@ -79,10 +79,10 @@ void display_wallet::close_menu_event_handler(wxCommandEvent& event) {
|
||||
|
||||
void display_wallet::add_name_event_handler(wxCommandEvent& event) {
|
||||
wxTextEntryDialog dialog(this,
|
||||
"This is a small sample\n"
|
||||
"A long, long string to test out the text entrybox",
|
||||
"Please enter a string",
|
||||
"Default value",
|
||||
R"("A Zooko name has a human readable name,
|
||||
and a public key defined by the name and the wallet master secret)",
|
||||
"Create a Zooko name",
|
||||
"",
|
||||
wxOK | wxCANCEL);
|
||||
if (dialog.ShowModal() == wxID_OK)
|
||||
{
|
||||
|
@ -161,10 +161,17 @@ Frame::Frame(wxString wxs)
|
||||
}
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
// if the attempt to load an existing wallet file fails,
|
||||
// we have to complete startup somehow.
|
||||
|
||||
queue_error_message(e.what());
|
||||
panel = new welcome_to_rhocoin(this); //Owner is "this", via the base class wxFrame. m_panel is a
|
||||
// non owning pointer in the derived class that duplicates the owning pointer in the base class.
|
||||
panel = new welcome_to_rhocoin(this); //Owner is "this", via the base class wxFrame.
|
||||
}
|
||||
// m_panel is a non owning pointer in the derived class that duplicates the
|
||||
// owning pointer in the base class. This looks like a violation of DIY.
|
||||
// but I have the concept of the primary child of the frame window, while
|
||||
// wxWidgets lacks that concept.
|
||||
// m_panel signifies the child window of the frame that currently matters.
|
||||
m_panel = panel;
|
||||
this->RestorePositionFromConfig(ClientToWindowSize(m_panel->GetBestSize()));
|
||||
SetClientSize(GetClientSize());
|
||||
|
Loading…
Reference in New Issue
Block a user