Example #1
0
void FileTransferManager::showFileTransferWindow()
{
	QMutexLocker locker(&mutex());

	if (!m_window)
		m_window = m_injectedFactory->makeInjected<FileTransferWindow>();
	_activateWindow(m_configuration, m_window.data());
}
void YourAccountsWindowService::show()
{
    if (!m_yourAccounts)
        m_yourAccounts = m_injectedFactory->makeInjected<YourAccounts>();

    m_yourAccounts->show();
    _activateWindow(m_configuration, m_yourAccounts);
}
Example #3
0
 ////////////////////////////////////////////////////////////////////////////////
 // 通过socket通讯实现程序单实例运行,监听到新的连接时触发该函数
 ////////////////////////////////////////////////////////////////////////////////
 void QSingleApplication::_newLocalConnection() {
     QLocalSocket *socket = _localServer->nextPendingConnection();
    if(socket) {
         socket->waitForReadyRead(2*TIME_OUT);
         delete socket;
         // 其他处理,如:读取启动参数
         _activateWindow();
     }
 }
Example #4
0
void SingleWindow::tryActivateChatWidget(ChatWidget *chatWidget)
{
	int index = m_tabs->indexOf(chatWidget);
	if (index < 0)
		return;

	_activateWindow(m_configuration, this);

	m_tabs->setCurrentIndex(index);
	chatWidget->edit()->setFocus();
}
Example #5
0
void ConfigurationWindow::show()
{
	if (!isVisible())
  	{
		widget()->beforeShow();
		widget()->loadConfiguration();
		QWidget::show();
	}
	else
	{
		_activateWindow(m_configuration, this);
	}
}
Example #6
0
File: tabs.cpp Project: vogel/kadu
ChatWidget * TabsManager::addChat(Chat chat, OpenChatActivation activation)
{
    kdebugf();

    auto chatWidget = m_pluginInjectedFactory->makeInjected<ChatWidgetImpl>(chat, nullptr);
    setConfiguration(chatWidget);

    if (m_configuration->deprecatedApi()->readBoolEntry("Chat", "SaveOpenedWindows", true))
        chatWidget->chat().addProperty("tabs:fix2626", true, CustomProperties::Storable);

    auto tmpAttached = chat.property("tabs:tmp-attached", false).toBool();
    auto tmpDetached =  chat.property("tabs:tmp-detached", false).toBool();
    auto attached = chat.property("tabs:attached", false).toBool();
    auto detached = chat.property("tabs:detached", false).toBool();

    if (!tmpAttached && tmpDetached)
    {
        DetachedChats.append(chat);
        return chatWidget;
    }

    if (tmpAttached)
    {
        insertTab(chatWidget);
    }
    else if (!attached && detached)
    {
        DetachedChats.append(chat);
    }
    else if (attached || ConfigDefaultTabs)
        insertTab(chatWidget);

    if (TabDialog->count() == 1) // first tab
    {
        switch (activation)
        {
        case OpenChatActivation::Minimize:
            TabDialog->showMinimized();
            break;
        default:
            TabDialog->show();
            break;
        }
    }

    if (activation == OpenChatActivation::Activate)
        _activateWindow(m_configuration, TabDialog);

    return chatWidget;
}
Example #7
0
void HistoryWindowService::show(const Chat &chat)
{
	auto buddyChat = m_buddyChatManager->buddyChat(chat);
	if (!buddyChat)
		buddyChat = chat;

	if (!m_historyWindow)
		m_historyWindow = m_pluginInjectedFactory->makeInjected<HistoryWindow>();

	m_historyWindow->updateData();
	m_historyWindow->selectChat(buddyChat);

	m_historyWindow->setVisible(true);
	_activateWindow(m_configuration, m_historyWindow);
}
Example #8
0
void HistoryWindow::show(History *history, const Chat &chat)
{
	Chat buddyChat = BuddyChatManager::instance()->buddyChat(chat);
	if (!buddyChat)
		buddyChat = chat;

	if (!Instance)
		Instance = new HistoryWindow(history);

	Instance->updateData();
	Instance->selectChat(buddyChat);

	Instance->setVisible(true);
	_activateWindow(Instance);
}
Example #9
0
void ChatWindow::alertNewMessage()
{
	if (!_isActiveWindow(this))
	{
		if (activateWithNewMessages && qApp->activeWindow() && !isMinimized())
		{
			_activateWindow(this);
		}
		else if (blinkChatTitle)
		{
			if (!title_timer->isActive())
				blinkTitle(); // blinking is able to show new messages also...
		}
		else if (showNewMessagesNum) // ... so we check this condition as 'else'
			showNewMessagesNumInTitle();

		qApp->alert(this); // TODO: make notifier from this
	}
	else
		currentChatWidget->markAllMessagesRead();
}
Example #10
0
void ChatDataWindow::show()
{
	QWidget::show();

	_activateWindow(this);
}
Example #11
0
static void kadu_signal_handler(int signal)
{
	kdebugmf(KDEBUG_WARNING, "%d\n", signal);

	static int sigsegvCount = 0;

	if (sigsegvCount > 1)
	{
		kdebugmf(KDEBUG_WARNING, "sigsegv recursion: %d\n", sigsegvCount);
		abort();
	}

	if (signal == SIGSEGV)
	{
		++sigsegvCount;
		kdebugm(KDEBUG_PANIC, "Kadu crashed :(\n");

		CrashAwareObject::notifyCrash();

		QString backtraceFileName = QStringLiteral("kadu.backtrace.") + QDateTime::currentDateTime().toString("yyyy.MM.dd.hh.mm.ss");

#if HAVE_EXECINFO
		void *backtraceArray[100];
		char **backtraceStrings;
		int numEntries;

		if ((numEntries = backtrace(backtraceArray, 100)) < 0)
		{
			kdebugm(KDEBUG_PANIC, "could not generate backtrace\n");
			abort();
		}
		if (!(backtraceStrings = backtrace_symbols(backtraceArray, numEntries)))
		{
			kdebugm(KDEBUG_PANIC, "could not get symbol names for backtrace\n");
			abort();
		}

		fprintf(stderr, "\n======= BEGIN OF BACKTRACE =====\n");
		for (int i = 0; i < numEntries; ++i)
			fprintf(stderr, "[%d] %s\n", i, backtraceStrings[i]);
		fprintf(stderr, "======= END OF BACKTRACE  ======\n");
		fflush(stderr);

		FILE *backtraceFile = fopen(qPrintable(QString(g_pathsProvider->profilePath() + backtraceFileName)), "w");
		if (backtraceFile)
		{
			fprintf(backtraceFile, "======= BEGIN OF BACKTRACE =====\n");
			for (int i = 0; i < numEntries; ++i)
				fprintf(backtraceFile, "[%d] %s\n", i, backtraceStrings[i]);
			fprintf(backtraceFile, "======= END OF BACKTRACE  ======\n");

			fprintf(backtraceFile, "loaded plugins:\n");
			auto pluginNames = g_pluginActivationService->activePlugins();
			for (auto const &pluginName : pluginNames)
				fprintf(backtraceFile, "> %s\n", qPrintable(pluginName));
			fprintf(backtraceFile, "Kadu version: %s\n", qPrintable(g_versionService->version()));
			fprintf(backtraceFile, "Qt compile time version: %s\nQt runtime version: %s\n",
					QT_VERSION_STR, qVersion());
#ifdef __GNUC__
			fprintf(backtraceFile, "GCC version: %d.%d.%d\n",
					__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
#endif // __GNUC__
			fprintf(backtraceFile, "EOF\n");

			fclose(backtraceFile);
		}

		free(backtraceStrings);
#else // HAVE_EXECINFO
		kdebugm(KDEBUG_PANIC, "backtrace not available\n");
#endif // HAVE_EXECINFO

		g_application->backupConfiguration();
		abort();
	}
	else if (signal == SIGUSR1)
	{
		kdebugm(KDEBUG_INFO, "ok, got a signal to show up\n");
		_activateWindow(g_configuration, g_kaduWindowService->kaduWindow());
	}
	else if (signal == SIGINT || signal == SIGTERM)
		QCoreApplication::quit();
}
Example #12
0
void YourAccounts::show()
{
	QWidget::show();

	_activateWindow(this);
}