Merge branch '0.5.0.x' into 0.5.x

Conflicts:
	src/qt/bitcoingui.cpp
This commit is contained in:
Luke Dashjr
2012-02-17 09:16:19 -05:00
6 changed files with 46 additions and 22 deletions

View File

@@ -62,7 +62,7 @@ contains(USE_SSL, 1) {
contains(BITCOIN_NEED_QT_PLUGINS, 1) {
DEFINES += BITCOIN_NEED_QT_PLUGINS
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs
QTPLUGIN += qcncodecs qjpcodecs qtwcodecs qkrcodecs qtaccessiblewidgets
}
!windows {

View File

@@ -20,6 +20,7 @@ Q_IMPORT_PLUGIN(qcncodecs)
Q_IMPORT_PLUGIN(qjpcodecs)
Q_IMPORT_PLUGIN(qtwcodecs)
Q_IMPORT_PLUGIN(qkrcodecs)
Q_IMPORT_PLUGIN(qtaccessiblewidgets)
#endif
using namespace std;
@@ -208,7 +209,7 @@ bool AppInit2(int argc, char* argv[])
#ifdef GUI
" -server \t\t " + _("Accept command line and JSON-RPC commands\n") +
#endif
#ifndef WIN32
#if !defined(WIN32) && !defined(GUI)
" -daemon \t\t " + _("Run in the background as a daemon and accept commands\n") +
#endif
" -testnet \t\t " + _("Use the test network\n") +
@@ -247,7 +248,7 @@ bool AppInit2(int argc, char* argv[])
fTestNet = GetBoolArg("-testnet");
fDebug = GetBoolArg("-debug");
#ifndef WIN32
#if !defined(WIN32) && !defined(GUI)
fDaemon = GetBoolArg("-daemon");
#else
fDaemon = false;
@@ -278,7 +279,7 @@ bool AppInit2(int argc, char* argv[])
}
#endif
#ifndef WIN32
#if !defined(WIN32) && !defined(GUI)
if (fDaemon)
{
// Daemonize

View File

@@ -7,7 +7,7 @@ USE_UPNP:=0
DEFS=-DNOPCH
DEFS += $(addprefix -I,$(BOOST_INCLUDE_PATH) $(BDB_INCLUDE_PATH) $(OPENSSL_INCLUDE_PATH))
LIBS += $(addprefix -l,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
LIBS = $(addprefix -L,$(BOOST_LIB_PATH) $(BDB_LIB_PATH) $(OPENSSL_LIB_PATH))
LMODE = dynamic
LMODE2 = dynamic
@@ -21,7 +21,7 @@ else
endif
# for boost 1.37, add -mt to the boost libraries
LIBS= \
LIBS += \
-Wl,-B$(LMODE) \
-l boost_system$(BOOST_LIB_SUFFIX) \
-l boost_filesystem$(BOOST_LIB_SUFFIX) \

View File

@@ -931,13 +931,17 @@ void ThreadSocketHandler2(void* parg)
struct sockaddr_in sockaddr;
socklen_t len = sizeof(sockaddr);
SOCKET hSocket = accept(hListenSocket, (struct sockaddr*)&sockaddr, &len);
CAddress addr(sockaddr);
CAddress addr;
int nInbound = 0;
if (hSocket != INVALID_SOCKET)
addr = CAddress(sockaddr);
CRITICAL_BLOCK(cs_vNodes)
BOOST_FOREACH(CNode* pnode, vNodes)
if (pnode->fInbound)
nInbound++;
if (hSocket == INVALID_SOCKET)
{
if (WSAGetLastError() != WSAEWOULDBLOCK)
@@ -1478,9 +1482,13 @@ void ThreadOpenConnections2(void* parg)
int64 nStart = GetTime();
loop
{
// Limit outbound connections
vnThreadsRunning[1]--;
Sleep(500);
vnThreadsRunning[1]++;
if (fShutdown)
return;
// Limit outbound connections
loop
{
int nOutbound = 0;
@@ -1492,13 +1500,12 @@ void ThreadOpenConnections2(void* parg)
nMaxOutboundConnections = min(nMaxOutboundConnections, (int)GetArg("-maxconnections", 125));
if (nOutbound < nMaxOutboundConnections)
break;
vnThreadsRunning[1]--;
Sleep(2000);
vnThreadsRunning[1]++;
if (fShutdown)
return;
}
vnThreadsRunning[1]++;
if (fShutdown)
return;
bool fAddSeeds = false;
@@ -1895,7 +1902,7 @@ bool StopNode()
fShutdown = true;
nTransactionsUpdated++;
int64 nStart = GetTime();
while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0
while (vnThreadsRunning[0] > 0 || vnThreadsRunning[1] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0
#ifdef USE_UPNP
|| vnThreadsRunning[5] > 0
#endif

View File

@@ -55,6 +55,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
QMainWindow(parent),
clientModel(0),
walletModel(0),
dummyWidget(0),
encryptWalletAction(0),
changePassphraseAction(0),
aboutQtAction(0),
@@ -84,6 +85,9 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
// Create the tray icon (or setup the dock icon)
createTrayIcon();
// Dummy widget used when restoring window state after minimization
dummyWidget = new QWidget();
// Create tabs
overviewPage = new OverviewPage();
@@ -157,6 +161,7 @@ BitcoinGUI::~BitcoinGUI()
#ifdef Q_WS_MAC
delete appMenuBar;
#endif
delete dummyWidget;
}
void BitcoinGUI::createActions()
@@ -193,15 +198,15 @@ void BitcoinGUI::createActions()
sendCoinsAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_2));
tabGroup->addAction(sendCoinsAction);
connect(overviewAction, SIGNAL(triggered()), this, SLOT(show()));
connect(overviewAction, SIGNAL(triggered()), this, SLOT(showNormal()));
connect(overviewAction, SIGNAL(triggered()), this, SLOT(gotoOverviewPage()));
connect(historyAction, SIGNAL(triggered()), this, SLOT(show()));
connect(historyAction, SIGNAL(triggered()), this, SLOT(showNormal()));
connect(historyAction, SIGNAL(triggered()), this, SLOT(gotoHistoryPage()));
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(show()));
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(showNormal()));
connect(addressBookAction, SIGNAL(triggered()), this, SLOT(gotoAddressBookPage()));
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(show()));
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(showNormal()));
connect(receiveCoinsAction, SIGNAL(triggered()), this, SLOT(gotoReceiveCoinsPage()));
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(show()));
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(showNormal()));
connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(gotoSendCoinsPage()));
quitAction = new QAction(QIcon(":/icons/quit"), tr("E&xit"), this);
@@ -379,10 +384,17 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason)
// Click on system tray icon triggers "open bitcoin"
openBitcoinAction->trigger();
}
}
#endif
void BitcoinGUI::showNormal()
{
// Reparent window to the desktop (in case it was hidden on minimize)
if(parent() != NULL)
setParent(NULL, Qt::Window);
QMainWindow::showNormal();
}
void BitcoinGUI::optionsClicked()
{
if(!clientModel || !clientModel->getOptionsModel())
@@ -524,13 +536,13 @@ void BitcoinGUI::changeEvent(QEvent *e)
{
if(isMinimized())
{
hide();
e->ignore();
// Hiding the window from taskbar
setParent(dummyWidget, Qt::SubWindow);
return;
}
else
{
show();
e->accept();
showNormal();
}
}
}

View File

@@ -57,6 +57,8 @@ private:
QStackedWidget *centralWidget;
QWidget *dummyWidget;
OverviewPage *overviewPage;
QWidget *transactionsPage;
AddressBookPage *addressBookPage;
@@ -124,6 +126,8 @@ public slots:
*/
void askFee(qint64 nFeeRequired, bool *payFee);
void showNormal();
private slots:
/** Switch to overview (home) page */
void gotoOverviewPage();