set(POLYSEED_LIBRARY polyseed_static)
endif()
message(STATUS "POLYSEED PATH ${POLYSEED_INCLUDE_DIR}")
-message(STATUS "POLYSEED LIBARY ${POLYSEED_LIBRARY}")
\ No newline at end of file
+message(STATUS "POLYSEED LIBRARY ${POLYSEED_LIBRARY}")
\ No newline at end of file
message(STATUS "QRENCODE PATH ${QRENCODE_INCLUDE_DIR}")
find_library(QRENCODE_LIBRARY qrencode)
-message(STATUS "QRENCODE LIBARY ${QRENCODE_LIBRARY}")
+message(STATUS "QRENCODE LIBRARY ${QRENCODE_LIBRARY}")
mark_as_advanced(QRENCODE_LIBRARY QRENCODE_INCLUDE_DIR)
void MainWindow::initStatusBar() {
#if defined(Q_OS_WIN)
- // No seperators between statusbar widgets
+ // No separators between statusbar widgets
this->statusBar()->setStyleSheet("QStatusBar::item {border: None;}");
#endif
connect(ui->actionAbout, &QAction::triggered, this, &MainWindow::menuAboutClicked);
connect(ui->actionOfficialWebsite, &QAction::triggered, [this](){Utils::externalLinkWarning(this, "https://featherwallet.org");});
connect(ui->actionDonate_to_Feather, &QAction::triggered, this, &MainWindow::donateButtonClicked);
- connect(ui->actionDocumentation, &QAction::triggered, this, &MainWindow::onShowDocumentaton);
+ connect(ui->actionDocumentation, &QAction::triggered, this, &MainWindow::onShowDocumentation);
connect(ui->actionReport_bug, &QAction::triggered, this, &MainWindow::onReportBug);
connect(ui->actionShow_debug_info, &QAction::triggered, this, &MainWindow::showDebugInfo);
m_ctx->wallet->subaddress()->addRow(m_ctx->wallet->currentSubaddressAccount(), "");
}
}
- m_ctx->wallet->subaddressModel()->setCurrentSubaddressAcount(m_ctx->wallet->currentSubaddressAccount());
+ m_ctx->wallet->subaddressModel()->setCurrentSubaddressAccount(m_ctx->wallet->currentSubaddressAccount());
// history page
m_ctx->wallet->history()->refresh(m_ctx->wallet->currentSubaddressAccount());
QMessageBox::information(this, "Desktop entry", msg);
}
-void MainWindow::onShowDocumentaton() {
+void MainWindow::onShowDocumentation() {
Utils::externalLinkWarning(this, "https://docs.featherwallet.org");
}
void onExportHistoryCSV(bool checked);
void onExportContactsCSV(bool checked);
void onCreateDesktopEntry(bool checked);
- void onShowDocumentaton();
+ void onShowDocumentation();
void onReportBug(bool checked);
void onShowSettingsPage(int page);
void addToRecentlyOpened(const QString &filename);
void updateRecentlyOpenedMenu();
void updateWidgetIcons();
- bool verifyPassword(bool senstive = true);
+ bool verifyPassword(bool sensitive = true);
void patchStylesheetMac();
void fillSendTab(const QString &address, const QString &description);
void userActivity();
• The wallet UI is heavily inspired by Electrum. We would like to recognize Thomas Voegtlin for his pioneering work on Bitcoin.
-• Feather uses the monero-seed libary written by Tevador for 14 word mnemonic seeds.
+• Feather uses the monero-seed library written by Tevador for 14 word mnemonic seeds.
• Wizard banner art was adapted from a paper wallet design by the themonera (themonera.art).
}
}
-void DebugInfoDialog::copyToClipboad() {
+void DebugInfoDialog::copyToClipboard() {
// Two spaces at the end of each line are for newlines in Markdown
QString text = "";
text += QString("Feather version: %1 \n").arg(ui->label_featherVersion->text());
private:
QString statusToString(Wallet::ConnectionStatus status);
- void copyToClipboad();
+ void copyToClipboard();
void updateInfo();
QScopedPointer<Ui::DebugInfoDialog> ui;
if(fn.isEmpty()) return;
m_utx->sign(fn) ? QMessageBox::information(this, "Sign transaction", "Transaction saved successfully")
- : QMessageBox::warning(this, "Sign transaction", "Failes to save transaction to file.");
+ : QMessageBox::warning(this, "Sign transaction", "Failed to save transaction to file.");
}
void TxConfAdvDialog::unsignedSaveFile() {
}
Utils::copyToClipboard(proof.proof);
- QMessageBox::information(this, "Get proof singature", "Proof signature copied to clipboard");
+ QMessageBox::information(this, "Get proof signature", "Proof signature copied to clipboard");
}
TxProof TxProofDialog::getProof() {
ui->label_primaryAddress->setText(m_ctx->wallet->address(0, 0));
ui->label_secretViewKey->setText(m_ctx->wallet->getSecretViewKey());
- connect(ui->btn_Copy, &QPushButton::clicked, this, &ViewOnlyDialog::copyToClipboad);
+ connect(ui->btn_Copy, &QPushButton::clicked, this, &ViewOnlyDialog::copyToClipboard);
connect(ui->btn_Save, &QPushButton::clicked, this, &ViewOnlyDialog::onWriteViewOnlyWallet);
if (m_ctx->wallet->viewOnly()) {
QMessageBox::information(this, "Information", "View-only wallet successfully written to disk.");
}
-void ViewOnlyDialog::copyToClipboad() {
+void ViewOnlyDialog::copyToClipboard() {
QString text = "";
text += QString("Address: %1\n").arg(ui->label_primaryAddress->text());
text += QString("Secret view key: %1\n").arg(ui->label_secretViewKey->text());
void onWriteViewOnlyWallet();
private:
- void copyToClipboad();
+ void copyToClipboard();
QScopedPointer<Ui::ViewOnlyDialog> ui;
QSharedPointer<AppContext> m_ctx;
class PassphraseHelper {
public:
- PassphraseHelper(PassprasePrompter * prompter=nullptr): m_prompter(prompter) {};
+ PassphraseHelper(PassphrasePrompter * prompter=nullptr): m_prompter(prompter) {};
PassphraseHelper(const PassphraseHelper & h): PassphraseHelper(h.m_prompter) {};
Monero::optional<std::string> onDevicePassphraseRequest(bool & on_device);
void onPassphraseEntered(const QString &passphrase, bool enter_on_device, bool entry_abort);
private:
- PassprasePrompter * m_prompter;
+ PassphrasePrompter * m_prompter;
QWaitCondition m_cond_pass;
QMutex m_mutex_pass;
QString m_passphrase;
m_subaddress->refresh(m_currentSubaddressAccount);
m_history->refresh(m_currentSubaddressAccount);
m_coins->refresh(m_currentSubaddressAccount);
- this->subaddressModel()->setCurrentSubaddressAcount(m_currentSubaddressAccount);
+ this->subaddressModel()->setCurrentSubaddressAccount(m_currentSubaddressAccount);
this->coinsModel()->setCurrentSubaddressAccount(m_currentSubaddressAccount);
emit currentSubaddressAccountChanged();
}
uint64_t confirmations;
};
-class Wallet : public QObject, public PassprasePrompter
+class Wallet : public QObject, public PassphrasePrompter
{
Q_OBJECT
//! returns Address book
AddressBook *addressBook() const;
- //! returns adress book model
+ //! returns address book model
AddressBookModel *addressBookModel() const;
//! returns subaddress
Subaddress *subaddress();
- //! returns subadress model
+ //! returns subaddress model
SubaddressModel *subaddressModel();
//! returns subaddress account
SubaddressAccount *subaddressAccount() const;
- //! returns subadress account model
+ //! returns subaddress account model
SubaddressAccountModel *subaddressAccountModel() const;
//! returns coins
QString getDaemonLogPath() const;
- // Blackalled outputs
+ // Blackballed outputs
bool blackballOutput(const QString &amount, const QString &offset);
bool blackballOutputs(const QList<QString> &outputs, bool add);
bool blackballOutputs(const QString &filename, bool add);
bool setRingDatabase(const QString &path);
- // TODO: setListenter() when it implemented in API
+ // TODO: setListener() when it implemented in API
signals:
// emitted on every event happened with wallet
// (money sent/received, new block)
struct WalletManager;
}
-class WalletManager : public QObject, public PassprasePrompter
+class WalletManager : public QObject, public PassphrasePrompter
{
Q_OBJECT
switch (index.column()) {
case Label:
- m_subaddress->setLabel(m_currentSubaddressAcount, row, value.toString());
+ m_subaddress->setLabel(m_currentSubaddressAccount, row, value.toString());
break;
default:
return false;
return m_subaddress->unusedLookahead();
}
-void SubaddressModel::setCurrentSubaddressAcount(quint32 accountIndex) {
- m_currentSubaddressAcount = accountIndex;
+void SubaddressModel::setCurrentSubaddressAccount(quint32 accountIndex) {
+ m_currentSubaddressAccount = accountIndex;
}
Monero::SubaddressRow* SubaddressModel::entryFromIndex(const QModelIndex &index) const {
Monero::SubaddressRow* entryFromIndex(const QModelIndex &index) const;
- void setCurrentSubaddressAcount(quint32 accountIndex);
+ void setCurrentSubaddressAccount(quint32 accountIndex);
int unusedLookahead() const;
public slots:
QVariant parseSubaddressRow(const Monero::SubaddressRow &subaddress, const QModelIndex &index, int role) const;
bool m_showFullAddresses;
- quint32 m_currentSubaddressAcount;
+ quint32 m_currentSubaddressAccount;
};
#endif // SUBADDRESSMODEL_H
bool TransactionHistoryProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const
{
QString description, txid, subaddrlabel;
- quint32 subaddrAcount;
+ quint32 subaddrAccount;
QSet<quint32> subaddrIndex;
- m_history->transaction(sourceRow, [&description, &txid, &subaddrlabel, &subaddrAcount, &subaddrIndex](TransactionInfo &tInfo){
+ m_history->transaction(sourceRow, [&description, &txid, &subaddrlabel, &subaddrAccount, &subaddrIndex](TransactionInfo &tInfo){
description = tInfo.description();
txid = tInfo.hash();
subaddrlabel = tInfo.label();
- subaddrAcount = tInfo.subaddrAccount();
+ subaddrAccount = tInfo.subaddrAccount();
subaddrIndex = tInfo.subaddrIndex();
});
bool addressFound;
for (quint32 i : subaddrIndex) {
- QString address = m_wallet->address(subaddrAcount, i);
+ QString address = m_wallet->address(subaddrAccount, i);
addressFound = address.contains(m_searchRegExp);
if (addressFound) break;
}
## Note to package maintainers:
This library was vendored because it is **deprecated** and **unmaintained**, it is kept for legacy reasons only.
-Feather is the only project that will ever use this code, thus it is considered part of Feather source.
+Feather is the only project that will ever use this code, thus it is considered part of Feather source.
Do NOT unvendor this code.
---
### Wordlist
The mnemonic phrase uses the BIP-39 wordlist, which has 2048 words, allowing 11 bits to be stored in each word. It has some additional useful properties,
-for example each word can be uniquly identified by its first 4 characters. The wordlist is available for 9 languages (this repository only uses the English list).
+for example each word can be uniquely identified by its first 4 characters. The wordlist is available for 9 languages (this repository only uses the English list).
### Reserved bits
QWidgetName ------
This makes more easy to find and change some css field. The basic
-configuration is described bellow.
+configuration is described below.
BACKGROUND -----------
color: #32414B;
}
-/* QTabWiget --------------------------------------------------------------
+/* QTabWidget --------------------------------------------------------------
https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar
image: url(":/qss_icons/rc/arrow_right_disabled.png");
}
-/* QDockWiget -------------------------------------------------------------
+/* QDockWidget -------------------------------------------------------------
--------------------------------------------------------------------------- */
QDockWidget {
*
* @param task std::function object to run
* @param context QObject responsible for calling this function
- * @param callback std::function object to run after the task completess
+ * @param callback std::function object to run after the task completes
*/
template <typename FunctionObject, typename FunctionObject2>
void runThenCallback(FunctionObject task, QObject* context, FunctionObject2 callback)
qDebug() << QString("Loaded %1 custom nodes from config").arg(m_customNodes.count());
}
- // No nodes cached, fallback to hardcorded list
+ // No nodes cached, fallback to hardcoded list
if (m_websocketNodes.count() == 0) {
QByteArray file = Utils::fileOpenQRC(":/assets/nodes.json");
QJsonDocument nodes_json = QJsonDocument::fromJson(file);