Master Core  v0.0.9 - 2abfd2849db8ba7a83957c64eb976b406713c123
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
guiutil.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2013 The Bitcoin developers
2 // Distributed under the MIT/X11 software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef GUIUTIL_H
6 #define GUIUTIL_H
7 
8 #include <QHeaderView>
9 #include <QMessageBox>
10 #include <QObject>
11 #include <QString>
12 #include <QTableView>
13 
14 #include <boost/filesystem.hpp>
15 
16 class QValidatedLineEdit;
17 class SendCoinsRecipient;
18 
19 QT_BEGIN_NAMESPACE
20 class QAbstractItemView;
21 class QDateTime;
22 class QFont;
23 class QLineEdit;
24 class QUrl;
25 class QWidget;
26 QT_END_NAMESPACE
27 
30 namespace GUIUtil
31 {
32  // Create human-readable string from date
33  QString dateTimeStr(const QDateTime &datetime);
34  QString dateTimeStr(qint64 nTime);
35 
36  // Render Bitcoin addresses in monospace font
37  QFont bitcoinAddressFont();
38 
39  // Set up widgets for address and amounts
40  void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent);
41  void setupAmountWidget(QLineEdit *widget, QWidget *parent);
42 
43  // Parse "bitcoin:" URI into recipient object, return true on successful parsing
44  bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out);
45  bool parseBitcoinURI(QString uri, SendCoinsRecipient *out);
46  QString formatBitcoinURI(const SendCoinsRecipient &info);
47 
48  // Returns true if given address+amount meets "dust" definition
49  bool isDust(const QString& address, qint64 amount);
50 
51  // HTML escaping for rich text controls
52  QString HtmlEscape(const QString& str, bool fMultiLine=false);
53  QString HtmlEscape(const std::string& str, bool fMultiLine=false);
54 
61  void copyEntryData(QAbstractItemView *view, int column, int role=Qt::EditRole);
62 
63  void setClipboard(const QString& str);
64 
75  QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir,
76  const QString &filter,
77  QString *selectedSuffixOut);
78 
88  QString getOpenFileName(QWidget *parent, const QString &caption, const QString &dir,
89  const QString &filter,
90  QString *selectedSuffixOut);
91 
97  Qt::ConnectionType blockingGUIThreadConnection();
98 
99  // Determine whether a widget is hidden behind other windows
100  bool isObscured(QWidget *w);
101 
102  // Open debug.log
103  void openDebugLogfile();
104 
110  // Replace invalid default fonts with known good ones
111  void SubstituteFonts();
112 
114  {
115  Q_OBJECT
116 
117  public:
118  explicit ToolTipToRichTextFilter(int size_threshold, QObject *parent = 0);
119 
120  protected:
121  bool eventFilter(QObject *obj, QEvent *evt);
122 
123  private:
125  };
126 
138  {
139  Q_OBJECT
140 
141  public:
142  TableViewLastColumnResizingFixer(QTableView* table, int lastColMinimumWidth, int allColsMinimumWidth);
143  void stretchColumnWidth(int column);
144 
145  private:
146  QTableView* tableView;
152 
154  int getAvailableWidthForColumn(int column);
155  int getColumnsWidth();
158  void setViewHeaderResizeMode(int logicalIndex, QHeaderView::ResizeMode resizeMode);
159  void resizeColumn(int nColumnIndex, int width);
160 
161  private slots:
162  void on_sectionResized(int logicalIndex, int oldSize, int newSize);
163  void on_geometriesChanged();
164  };
165 
167  bool SetStartOnSystemStartup(bool fAutoStart);
168 
170  void saveWindowGeometry(const QString& strSetting, QWidget *parent);
172  void restoreWindowGeometry(const QString& strSetting, const QSize &defaultSizeIn, QWidget *parent);
173 
174  /* Convert QString to OS specific boost path through UTF-8 */
175  boost::filesystem::path qstringToBoostPath(const QString &path);
176 
177  /* Convert OS specific boost path to QString through UTF-8 */
178  QString boostPathToQString(const boost::filesystem::path &path);
179 
180 } // namespace GUIUtil
181 
182 #endif // GUIUTIL_H
void openDebugLogfile()
Definition: guiutil.cpp:367
Utility functions used by the Bitcoin Qt UI.
Definition: guiutil.cpp:71
QString getOpenFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedSuffixOut)
Get open filename, convenience wrapper for QFileDialog::getOpenFileName.
Definition: guiutil.cpp:304
void setupAmountWidget(QLineEdit *widget, QWidget *parent)
Definition: guiutil.cpp:106
void setViewHeaderResizeMode(int logicalIndex, QHeaderView::ResizeMode resizeMode)
Definition: guiutil.cpp:435
TableViewLastColumnResizingFixer(QTableView *table, int lastColMinimumWidth, int allColsMinimumWidth)
Initializes all internal variables and prepares the the resize modes of the last 2 columns of the tab...
Definition: guiutil.cpp:524
QString dateTimeStr(const QDateTime &date)
Definition: guiutil.cpp:73
Qt::ConnectionType blockingGUIThreadConnection()
Get connection type to call object slot in GUI thread with invokeMethod.
Definition: guiutil.cpp:339
bool GetStartOnSystemStartup()
Definition: guiutil.cpp:727
ToolTipToRichTextFilter(int size_threshold, QObject *parent=0)
Definition: guiutil.cpp:376
QString HtmlEscape(const QString &str, bool fMultiLine)
Definition: guiutil.cpp:222
boost::filesystem::path qstringToBoostPath(const QString &path)
Definition: guiutil.cpp:773
Line edit that can be marked as "invalid" to show input validation feedback.
bool parseBitcoinURI(const QUrl &uri, SendCoinsRecipient *out)
Definition: guiutil.cpp:115
QString formatBitcoinURI(const SendCoinsRecipient &info)
Definition: guiutil.cpp:186
void saveWindowGeometry(const QString &strSetting, QWidget *parent)
Save window size and position.
Definition: guiutil.cpp:732
void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent)
Definition: guiutil.cpp:94
void SubstituteFonts()
Qt event filter that intercepts ToolTipChange events, and replaces the tooltip with a rich text repre...
Definition: guiutil.cpp:382
bool isObscured(QWidget *w)
Definition: guiutil.cpp:358
bool eventFilter(QObject *obj, QEvent *evt)
Definition: guiutil.cpp:402
void setClipboard(const QString &str)
Definition: guiutil.cpp:755
bool isDust(const QString &address, qint64 amount)
Definition: guiutil.cpp:214
Makes a QTableView last column feel as if it was being resized from its left border.
Definition: guiutil.h:137
void restoreWindowGeometry(const QString &strSetting, const QSize &defaultSize, QWidget *parent)
Restore window size and position.
Definition: guiutil.cpp:739
void on_sectionResized(int logicalIndex, int oldSize, int newSize)
Definition: guiutil.cpp:498
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedSuffixOut)
Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix when ...
Definition: guiutil.cpp:254
bool SetStartOnSystemStartup(bool fAutoStart)
Definition: guiutil.cpp:728
QString boostPathToQString(const boost::filesystem::path &path)
Definition: guiutil.cpp:778
void copyEntryData(QAbstractItemView *view, int column, int role)
Copy a field of the currently selected entry of a view to the clipboard.
Definition: guiutil.cpp:241
void resizeColumn(int nColumnIndex, int width)
Definition: guiutil.cpp:444
QFont bitcoinAddressFont()
Definition: guiutil.cpp:83