Commit 6c49d283 authored by Eike Ziller's avatar Eike Ziller
Browse files

Merge remote-tracking branch 'origin/2.6'

parents 6caf58c0 92bdd2b7
Qt Creator version 2.5.2 contains bug fixes.
The most important changes are listed in this document. For a complete
list of changes, see the Git log for the Qt Creator sources that
you can check out from the public Git repository. For example:
git clone git://gitorious.org/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline v2.5.1...v2.5.2
Platform Specific
Windows
* Fixed resource leak leading to regular crashes (QTCREATORBUG-7385)
doc/images/qtcreator-closesidebar.png

516 Bytes | W: | H:

doc/images/qtcreator-closesidebar.png

785 Bytes | W: | H:

doc/images/qtcreator-closesidebar.png
doc/images/qtcreator-closesidebar.png
doc/images/qtcreator-closesidebar.png
doc/images/qtcreator-closesidebar.png
  • 2-up
  • Swipe
  • Onion skin
doc/images/qtcreator-filter.png

636 Bytes | W: | H:

doc/images/qtcreator-filter.png

660 Bytes | W: | H:

doc/images/qtcreator-filter.png
doc/images/qtcreator-filter.png
doc/images/qtcreator-filter.png
doc/images/qtcreator-filter.png
  • 2-up
  • Swipe
  • Onion skin
doc/images/qtcreator-show-subprojects.png

856 Bytes | W: | H:

doc/images/qtcreator-show-subprojects.png

960 Bytes | W: | H:

doc/images/qtcreator-show-subprojects.png
doc/images/qtcreator-show-subprojects.png
doc/images/qtcreator-show-subprojects.png
doc/images/qtcreator-show-subprojects.png
  • 2-up
  • Swipe
  • Onion skin
doc/images/qtcreator-splitbar.png

591 Bytes | W: | H:

doc/images/qtcreator-splitbar.png

570 Bytes | W: | H:

doc/images/qtcreator-splitbar.png
doc/images/qtcreator-splitbar.png
doc/images/qtcreator-splitbar.png
doc/images/qtcreator-splitbar.png
  • 2-up
  • Swipe
  • Onion skin
doc/images/qtcreator-synchronizefocus.png

665 Bytes | W: | H:

doc/images/qtcreator-synchronizefocus.png

876 Bytes | W: | H:

doc/images/qtcreator-synchronizefocus.png
doc/images/qtcreator-synchronizefocus.png
doc/images/qtcreator-synchronizefocus.png
doc/images/qtcreator-synchronizefocus.png
  • 2-up
  • Swipe
  • Onion skin
doc/images/qtcreator-togglebutton.png

525 Bytes | W: | H:

doc/images/qtcreator-togglebutton.png

595 Bytes | W: | H:

doc/images/qtcreator-togglebutton.png
doc/images/qtcreator-togglebutton.png
doc/images/qtcreator-togglebutton.png
doc/images/qtcreator-togglebutton.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -317,9 +317,6 @@
\row
\o \gui{Edit}
\o Open a file for editing.
\row
\o \gui{Push}
\o Push changes to the remote repository.
\row
\o \gui{Unedit}
\o Discard the changes that you made in a file.
......
......@@ -176,16 +176,23 @@ void SshChannelManager::insertChannel(AbstractSshChannel *priv,
m_sessions.insert(priv, pub);
}
int SshChannelManager::closeAllChannels()
int SshChannelManager::closeAllChannels(CloseAllMode mode)
{
const int count = m_channels.count();
for (ChannelIterator it = m_channels.begin(); it != m_channels.end(); ++it)
it.value()->closeChannel();
m_channels.clear();
m_sessions.clear();
if (mode == CloseAllAndReset) {
m_channels.clear();
m_sessions.clear();
}
return count;
}
int SshChannelManager::channelCount() const
{
return m_channels.count();
}
void SshChannelManager::removeChannel(ChannelIterator it)
{
Q_ASSERT(it != m_channels.end() && "Unexpected channel lookup failure.");
......
......@@ -55,7 +55,10 @@ public:
QSharedPointer<SshRemoteProcess> createRemoteProcess(const QByteArray &command);
QSharedPointer<SshRemoteProcess> createRemoteShell();
QSharedPointer<SftpChannel> createSftpChannel();
int closeAllChannels();
int channelCount() const;
enum CloseAllMode { CloseAllRegular, CloseAllAndReset };
int closeAllChannels(CloseAllMode mode);
void handleChannelRequest(const SshIncomingPacket &packet);
void handleChannelOpen(const SshIncomingPacket &packet);
......
......@@ -194,13 +194,18 @@ QSharedPointer<SftpChannel> SshConnection::createSftpChannel()
int SshConnection::closeAllChannels()
{
try {
return d->m_channelManager->closeAllChannels();
return d->m_channelManager->closeAllChannels(Internal::SshChannelManager::CloseAllRegular);
} catch (const Botan::Exception &e) {
qDebug("%s: %s", Q_FUNC_INFO, e.what());
return -1;
}
}
int SshConnection::channelCount() const
{
return d->m_channelManager->channelCount();
}
namespace Internal {
SshConnectionPrivate::SshConnectionPrivate(SshConnection *conn,
......@@ -680,7 +685,7 @@ void SshConnectionPrivate::closeConnection(SshErrorCode sshError,
m_keepAliveTimer.stop();
disconnect(&m_keepAliveTimer, 0, this, 0);
try {
m_channelManager->closeAllChannels();
m_channelManager->closeAllChannels(SshChannelManager::CloseAllAndReset);
m_sendFacility.sendDisconnectPacket(sshError, serverErrorString);
} catch (Botan::Exception &) {} // Nothing sensible to be done here.
if (m_error != SshNoError)
......
......@@ -107,6 +107,8 @@ public:
// -1 if an error occurred, number of channels closed otherwise.
int closeAllChannels();
int channelCount() const;
signals:
void connected();
void disconnected();
......
......@@ -97,6 +97,8 @@ public:
continue;
if (connection->thread() != QThread::currentThread()) {
if (connection->channelCount() != 0)
continue;
QMetaObject::invokeMethod(this, "switchToCallerThread",
Qt::BlockingQueuedConnection,
Q_ARG(SshConnection *, connection),
......
......@@ -89,6 +89,8 @@ bool SaveFile::commit()
}
#ifdef Q_OS_WIN
FlushFileBuffers(reinterpret_cast<HANDLE>(handle()));
#elif defined(Q_OS_MAC)
fsync(handle());
#else
fdatasync(handle());
#endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment