void MainWindowPlugin::onOptionsChanged(const OptionsNode &ANode)
{
	if (ANode.path() == OPV_MAINWINDOW_STAYONTOP)
	{
#ifdef Q_WS_MAC
		setWindowOntop(FMainWindow, ANode.value().toBool());
#else
		QWidget *widget = mainWindowTopWidget();
		bool show = widget->isVisible();
		if (ANode.value().toBool())
			widget->setWindowFlags(widget->windowFlags() | Qt::WindowStaysOnTopHint);
		else
			widget->setWindowFlags(widget->windowFlags() & ~Qt::WindowStaysOnTopHint);
		if (show)
			showMainWindow();
#endif
	}
	else if (ANode.path() == OPV_MAINWINDOW_MINIMIZETOTRAY_W7)
	{
		if (isMinimizeToTray())
		{
			Options::node(OPV_MAINWINDOW_MINIMIZENOTIFY_SHOWCOUNT).setValue(MINIMIZENOTIFY_MAX_SHOWCOUNT+1);
		}
		if (FMainWindowBorder)
		{
			FMainWindowBorder->setMinimizeOnClose(!isMinimizeToTray());
		}
		if (!isMinimizeToTray() && !mainWindowTopWidget()->isVisible())
		{
			hideMainWindow();
		}
	}
}
void TuneListenerFile::onOptionsChanged(const OptionsNode &ANode)
{
    if (ANode.path() == OPV_TUNE_LISTENER_FILE_NAME)
        FFileName=ANode.value().toString();
    else if (ANode.path() == OPV_TUNE_LISTENER_FILE_FORMAT)
        FFileFormat=(FileFormat)ANode.value().toInt();
}
示例#3
0
void MainWindowPlugin::onOptionsChanged(const OptionsNode &ANode)
{
	QWidget * widget = FMainWindowBorder ? (QWidget*)FMainWindowBorder : (QWidget*)FMainWindow;
	if (ANode.path() == OPV_MAINWINDOW_STAYONTOP)
	{
		bool show = widget->isVisible();
		if (ANode.value().toBool())
			widget->setWindowFlags(widget->windowFlags() | Qt::WindowStaysOnTopHint);
		else
			widget->setWindowFlags(widget->windowFlags() & ~Qt::WindowStaysOnTopHint);
		if (show)
			showMainWindow();
	}
#ifdef Q_OS_WIN
	else if (ANode.path() == OPV_MAINWINDOW_MINIMIZETOTRAY_W7)
	{
		if (QSysInfo::windowsVersion() == QSysInfo::WV_WINDOWS7)
		{
			bool minimize = ANode.value().toBool();
			FMainWindowBorder->setMinimizeOnClose(!minimize);
			FMainWindowBorder->setShowInTaskBar(!minimize);
			if (minimize)
				disconnect(FMainWindowBorder ? (QObject*)FMainWindowBorder : (QObject*)FMainWindow, SIGNAL(closed()), this, SLOT(onMainWindowClosed()));
			else
				connect(FMainWindowBorder ? (QObject*)FMainWindowBorder : (QObject*)FMainWindow, SIGNAL(closed()), SLOT(onMainWindowClosed()));
		}
		else
			FMainWindowBorder->setShowInTaskBar(false);
	}
#endif
}
void MapSourceYandex::onOptionsChanged(const OptionsNode &ANode)
{
	if (ANode.path() == OPV_MAP_SOURCE_YANDEX_VERSION_SATELLITE)
		setVersionSattellite(ANode.value().toString());
	else if (ANode.path() == OPV_MAP_SOURCE_YANDEX_VERSION_SCHEME)
		setVersionScheme(ANode.value().toString());
}
示例#5
0
void UserTuneHandler::onOptionsChanged(const OptionsNode &ANode)
{
	if (ANode.path() == OPV_USERTUNE_SHOW_ROSTER_LABEL) {
		FTuneLabelVisible = ANode.value().toBool();
		if (FTuneLabelVisible) {
			foreach (const Jid streamJid, FRostersModel->streams()) {
				updateDataHolder(streamJid, Jid::null);
			}
		}
	} else if (ANode.path() == OPV_USERTUNE_TAG_FORMAT) {
示例#6
0
void EditWidget::onOptionsChanged(const OptionsNode &ANode)
{
	if (ANode.path() == OPV_MESSAGES_EDITORAUTORESIZE)
	{
		setAutoResize(ANode.value().toBool());
	}
	else if (ANode.path() == OPV_MESSAGES_EDITORMINIMUMLINES)
	{
		setMinimumHeightLines(ANode.value().toInt());
	}
}
QMultiMap<int, IOptionsDialogWidget *> AccountManager::optionsDialogWidgets(const QString &ANodeId, QWidget *AParent)
{
	QMultiMap<int, IOptionsDialogWidget *> widgets;
	if (ANodeId.startsWith(OPN_ACCOUNTS))
	{
		QStringList nodeTree = ANodeId.split(".",QString::SkipEmptyParts);
		if (ANodeId == OPN_ACCOUNTS)
		{
			widgets.insertMulti(OHO_ACCOUNTS_ACCOUNTS, FOptionsManager->newOptionsDialogHeader(tr("Accounts"),AParent));
// *** <<< eyeCU <<< ***
			int flags = 0;
			if (Options::node(OPV_COMMON_ADVANCED).value().toBool())
				flags|=AccountsOptionsWidget::Advanced;
			if (!FWizardAccount)
				flags|=AccountsOptionsWidget::NoWizrd;
			AccountsOptionsWidget *widget = new AccountsOptionsWidget(this, flags, AParent);
			widgets.insertMulti(OWO_ACCOUNTS_ACCOUNTS, widget);
			connect(widget, SIGNAL(addAccountLinkActivated(const QString &)), SLOT(onAddAccountLinkActivated(const QString &)));
			connect(this, SIGNAL(showAccountSettings(QUuid)), widget, SLOT(onSettingsButtonClicked(QUuid)));
// *** >>> eyeCU >>> ***
			widgets.insertMulti(OHO_ACCOUNTS_COMMON, FOptionsManager->newOptionsDialogHeader(tr("Common account settings"),AParent));
			
			QComboBox *resourceCombox = newResourceComboBox(QUuid(),AParent);
			widgets.insertMulti(OWO_ACCOUNTS_DEFAULTRESOURCE,FOptionsManager->newOptionsDialogWidget(Options::node(OPV_ACCOUNT_DEFAULTRESOURCE),tr("Default resource:"),resourceCombox,AParent));
		}
		else if (nodeTree.count()==3 && nodeTree.at(0)==OPN_ACCOUNTS && nodeTree.at(2)=="Parameters")
		{
			OptionsNode options = Options::node(OPV_ACCOUNT_ITEM,nodeTree.at(1));

			widgets.insertMulti(OHO_ACCOUNTS_PARAMS_ACCOUNT,FOptionsManager->newOptionsDialogHeader(tr("Account"),AParent));
			widgets.insertMulti(OWO_ACCOUNTS_PARAMS_NAME,FOptionsManager->newOptionsDialogWidget(options.node("name"),tr("Name:"),AParent));
// *** <<< eyeCU <<< ***
			if (!FWizardAccount || Options::node(OPV_COMMON_ADVANCED).value().toBool())
				widgets.insertMulti(OWO_ACCOUNTS_PARAMS_STREAM_JID,FOptionsManager->newOptionsDialogWidget(options.node("streamJid"),tr("Jabber ID:"),AParent));
// *** >>> eyeCU >>> ***
			widgets.insertMulti(OWO_ACCOUNTS_PARAMS_PASSWORD,FOptionsManager->newOptionsDialogWidget(options.node("password"),tr("Password:"******"resource"),tr("Resource:"),resourceCombox,AParent));
		}
		else if (nodeTree.count()==3 && nodeTree.at(0)==OPN_ACCOUNTS && nodeTree.at(2)=="Additional")
		{
			OptionsNode options = Options::node(OPV_ACCOUNT_ITEM,nodeTree.at(1));

			widgets.insertMulti(OHO_ACCOUNTS_ADDITIONAL_SETTINGS, FOptionsManager->newOptionsDialogHeader(tr("Additional settings"),AParent));
			widgets.insertMulti(OWO_ACCOUNTS_ADDITIONAL_REQUIRESECURE,FOptionsManager->newOptionsDialogWidget(options.node("require-encryption"),tr("Require secure connection to server"),AParent));
		}

	}
	return widgets;
}
示例#8
0
void InBandStreams::loadMethodSettings(IDataStreamSocket *ASocket, const OptionsNode &ANode)
{
	IInBandStream *stream = qobject_cast<IInBandStream *>(ASocket->instance());
	if (stream)
	{
		stream->setMaximumBlockSize(ANode.value("max-block-size").toInt());
		stream->setBlockSize(ANode.value("block-size").toInt());
		stream->setDataStanzaType(ANode.value("stanza-type").toInt());
	}
	else
	{
		REPORT_ERROR("Failed to load inband stream settings: Invalid socket");
	}
}
示例#9
0
void SocksStreams::loadMethodSettings(IDataStreamSocket *ASocket, const OptionsNode &ANode)
{
	ISocksStream *stream = qobject_cast<ISocksStream *>(ASocket->instance());
	if (stream)
	{
		QStringList proxyItems = ANode.value("stream-proxy-list").toStringList();
		if (ANode.value("use-account-stream-proxy").toBool())
		{
			QString streamProxy = accountStreamProxy(stream->streamJid());
			if (!streamProxy.isEmpty() && !proxyItems.contains(streamProxy))
				proxyItems.prepend(streamProxy);
		}
		stream->setProxyList(proxyItems);

		stream->setConnectTimeout(ANode.value("connect-timeout").toInt());
		stream->setDirectConnectionsDisabled(ANode.value("disable-direct-connections").toBool());
		stream->setForwardAddress(ANode.value("forward-host").toString(), ANode.value("forward-port").toInt());
		if (ANode.value("use-account-network-proxy").toBool())
			stream->setNetworkProxy(accountNetworkProxy(stream->streamJid()));
		else if (FConnectionManager)
			stream->setNetworkProxy(FConnectionManager->proxyById(ANode.value("network-proxy").toString()).proxy);
	}
	else
	{
		REPORT_ERROR("Failed to load socks stream settings: Invalid socket");
	}
}
示例#10
0
IConnectionProxy ConnectionManager::proxyById(const QUuid &AProxyId) const
{
	static const IConnectionProxy noProxy = {" "+tr("<No Proxy>"), QNetworkProxy(QNetworkProxy::NoProxy) };

	if (!AProxyId.isNull())
	{
		OptionsNode pnode;
		QList<QUuid> plist = proxyList();
		if (plist.contains(AProxyId))
			pnode = Options::node(OPV_PROXY_ITEM,AProxyId.toString());
		else if (plist.contains(defaultProxy()))
			pnode = Options::node(OPV_PROXY_ITEM,defaultProxy().toString());

		if (!pnode.isNull())
		{
			IConnectionProxy proxy;
			proxy.name = pnode.value("name").toString();
			proxy.proxy.setType((QNetworkProxy::ProxyType)pnode.value("type").toInt());
			proxy.proxy.setHostName(pnode.value("host").toString());
			proxy.proxy.setPort(pnode.value("port").toInt());
			proxy.proxy.setUser(pnode.value("user").toString());
			proxy.proxy.setPassword(Options::decrypt(pnode.value("pass").toByteArray()).toString());
			return proxy;
		}
	}

	return noProxy;
}
void PositioningMethodSerialPortOptions::apply()
{
    QString name = ui->cmbPortName->currentText();
    Options::node(OPV_POSITIONING_METHOD_SERIALPORT_NAME).setValue(name);    
    Options::node(OPV_POSITIONING_METHOD_SERIALPORT_BUFFERSIZE).setValue(ui->spbBufferSize->value());
    Options::node(OPV_POSITIONING_METHOD_SERIALPORT_TIMEOUT).setValue(ui->spbTimeout->value());
    Options::node(OPV_POSITIONING_METHOD_SERIALPORT_TIMETRESHOLD).setValue(ui->spbTimeTreshold->value());
    Options::node(OPV_POSITIONING_METHOD_SERIALPORT_DISTANCETRESHOLD).setValue(ui->spbDistanceTreshold->value());

    OptionsNode node = Options::node(OPV_POSITIONING_METHOD_SERIALPORT, name);
    node.setValue(ui->cmbBaudRate->itemData(ui->cmbBaudRate->currentIndex()).toLongLong(), "baud-rate");
    node.setValue(ui->cmbDataBits->itemData(ui->cmbDataBits->currentIndex()).toInt(), "data-bits");
    node.setValue(ui->cmbStopBits->itemData(ui->cmbStopBits->currentIndex()).toInt(), "stop-bits");
    node.setValue(ui->cmbParity->itemData(ui->cmbParity->currentIndex()).toInt(), "parity");
    node.setValue(ui->cmbFlowControl->itemData(ui->cmbFlowControl->currentIndex()).toInt(), "flow-control");
    emit childApply();
}
示例#12
0
void ConsoleWidget::saveContext(const QUuid &AContextId)
{
	OptionsNode node = Options::node(OPV_CONSOLE_CONTEXT_ITEM, AContextId.toString());
	node.setValue(ui.cmbStreamJid->currentIndex()>0 ? ui.cmbStreamJid->itemData(ui.cmbStreamJid->currentIndex()).toString() : QString::null,"streamjid");

	QStringList conditions;
	for (int i=0; i<ui.ltwConditions->count(); i++)
		conditions.append(ui.ltwConditions->item(i)->text());
	node.setValue(conditions,"conditions");

	node.setValue(ui.chbWordWrap->isChecked(),"word-wrap");
	node.setValue(ui.chbHilightXML->checkState(),"highlight-xml");

	Options::setFileValue(saveGeometry(),"console.context.window-geometry",AContextId.toString());
	Options::setFileValue(ui.sptHSplitter->saveState(),"console.context.hsplitter-state",AContextId.toString());
	Options::setFileValue(ui.sptVSplitter->saveState(),"console.context.vsplitter-state",AContextId.toString());
}
void MapSourceGoogle::onOptionsChanged(const OptionsNode &ANode)
{
	if (ANode.path() == OPV_MAP_SOURCE_GOOGLE_VERSION_MAP)
		setVersionMap(ANode.value().toInt());
	else if (ANode.path() == OPV_MAP_SOURCE_GOOGLE_VERSION_SATELLITE)
		setVersionSatellite(ANode.value().toInt());
	else if (ANode.path() == OPV_MAP_SOURCE_GOOGLE_VERSION_TERRAIN_R)
		setVersionTerrainR(ANode.value().toInt());
	else if (ANode.path() == OPV_MAP_SOURCE_GOOGLE_VERSION_TERRAIN_T)
		setVersionTerrainT(ANode.value().toInt());
}
PortSettings PositioningMethodSerialPortOptions::getPortSettings(const QString &APortName)
{
    PortSettings portSettings;
    OptionsNode node;
    if (Options::hasNode(OPV_POSITIONING_METHOD_SERIALPORT, APortName))
        node = Options::node(OPV_POSITIONING_METHOD_SERIALPORT, APortName);
    else
    {
        QSerialPort *serialPort = new QSerialPort(APortName);
        if (serialPort->open(QIODevice::ReadOnly))
        {
            portSettings.FBaudRate    = serialPort->baudRate();
            portSettings.FDataBits    = serialPort->dataBits();
            portSettings.FStopBits    = serialPort->stopBits();
            portSettings.FParity      = serialPort->parity();
            portSettings.FFlowControl = serialPort->flowControl();
            serialPort->close();
        }
        else // Failed to open the port
            node = Options::node(OPV_POSITIONING_METHOD_SERIALPORT, APortName);
        serialPort->deleteLater();
    }
    if (!node.isNull())
    {
        portSettings.FBaudRate = node.value("baud-rate").toLongLong();
        portSettings.FDataBits = (QSerialPort::DataBits)node.value("data-bits").toInt();
        portSettings.FStopBits = (QSerialPort::StopBits)node.value("stop-bits").toInt();
        portSettings.FParity = (QSerialPort::Parity)node.value("parity").toInt();
        portSettings.FFlowControl = (QSerialPort::FlowControl)node.value("flow-control").toInt();
    }
    return portSettings;
}
void ConnectionOptionsWidget::apply(OptionsNode ANode)
{
	OptionsNode node = !ANode.isNull() ? ANode : FOptions;
	node.setValue(ui.lneHost->text(),"host");
	node.setValue(ui.spbPort->value(),"port");
	node.setValue(ui.chbUseLegacySSL->isChecked(),"use-legacy-ssl");
	node.setValue(ui.cmbSslProtocol->itemData(ui.cmbSslProtocol->currentIndex()),"ssl-protocol");
	node.setValue(ui.cmbCertCheckMode->itemData(ui.cmbCertCheckMode->currentIndex()),"cert-verify-mode");

	if (FProxySettings)
		FManager->saveProxySettings(FProxySettings, node.node("proxy"));

	emit childApply();
}
示例#16
0
void EditWidget::onOptionsChanged(const OptionsNode &ANode)
{
	if (ANode.path() == OPV_MESSAGES_EDITORAUTORESIZE)
	{
		setAutoResize(ANode.value().toBool());
	}
	else if (ANode.path() == OPV_MESSAGES_EDITORMINIMUMLINES)
	{
		setMinimumLines(ANode.value().toInt());
	}
	else if (ANode.path() == OPV_MESSAGES_EDITORMAXIMUMLINES)
	{
		setMaximumLines(ANode.value().toInt());
	}
	else if (ANode.path() == OPV_MESSAGES_EDITORSENDKEY)
	{
		QKeySequence key = ANode.value().value<QKeySequence>();
		if (key.isEmpty())
			key = Options::defaultValue(OPV_MESSAGES_EDITORSENDKEY).value<QKeySequence>();
		setSendKey(key);
		;
	}
}
示例#17
0
void ConnectionManager::setProxy(const QUuid &AProxyId, const IConnectionProxy &AProxy)
{
	if (!AProxyId.isNull() && AProxyId!=APPLICATION_PROXY_REF_UUID)
	{
		LOG_INFO(QString("Proxy added or updated, id=%1").arg(AProxyId.toString()));
		OptionsNode pnode = Options::node(OPV_PROXY_ITEM,AProxyId.toString());
		pnode.setValue(AProxy.name,"name");
		pnode.setValue(AProxy.proxy.type(),"type");
		pnode.setValue(AProxy.proxy.hostName(),"host");
		pnode.setValue(AProxy.proxy.port(),"port");
		pnode.setValue(AProxy.proxy.user(),"user");
		pnode.setValue(Options::encrypt(AProxy.proxy.password()),"pass");
		emit proxyChanged(AProxyId, AProxy);
	}
	else
	{
		LOG_ERROR(QString("Failed to add or change proxy, id=%1: Invalid proxy Id").arg(AProxyId.toString()));
	}
}
示例#18
0
void ConsoleWidget::loadContext(const QUuid &AContextId)
{
	OptionsNode node = Options::node(OPV_CONSOLE_CONTEXT_ITEM, AContextId.toString());

	QString streamJid = node.value("streamjid").toString();
	if (streamJid.isEmpty())
		ui.cmbStreamJid->setCurrentIndex(0);
	else
		ui.cmbStreamJid->setCurrentIndex(ui.cmbStreamJid->findData(streamJid));

	ui.ltwConditions->clear();
	ui.ltwConditions->addItems(node.value("conditions").toStringList());

	ui.chbWordWrap->setChecked(node.value("word-wrap").toBool());
	ui.chbHilightXML->setCheckState((Qt::CheckState)node.value("highlight-xml").toInt());
	onWordWrapButtonToggled(ui.chbWordWrap->isChecked());

	if (!restoreGeometry(Options::fileValue("console.context.window-geometry",AContextId.toString()).toByteArray()))
		setGeometry(WidgetManager::alignGeometry(QSize(640,640),this));
	ui.sptHSplitter->restoreState(Options::fileValue("console.context.hsplitter-state",AContextId.toString()).toByteArray());
	ui.sptVSplitter->restoreState(Options::fileValue("console.context.vsplitter-state",AContextId.toString()).toByteArray());

	setWindowTitle(tr("XML Console - %1").arg(node.value("name").toString()));
}
IMessageStyleOptions SimpleMessageStyleEngine::styleOptions(const OptionsNode &AEngineNode, const QString &AStyleId) const
{
	IMessageStyleOptions options;
	if (AStyleId.isEmpty() || FStylePaths.contains(AStyleId))
	{
		QString styleId = AStyleId.isEmpty() ? AEngineNode.value("style-id").toString() : AStyleId;

		// Select default style
		if (!FStylePaths.isEmpty() && !FStylePaths.contains(styleId))
		{
			int mtype = AEngineNode.parentNSpaces().value(1).toInt();
			switch (mtype)
			{
			case Message::Normal:
			case Message::Headline:
			case Message::Error:
				styleId = "Message Style";
				AEngineNode.node("style",styleId).setValue(QString("Default"),"variant");
				break;
			default:
				styleId = "Chat Style";
				AEngineNode.node("style",styleId).setValue(QString("Default"),"variant");
			}
			styleId = !FStylePaths.contains(styleId) ? FStylePaths.keys().first() : styleId;
		}

		if (FStylePaths.contains(styleId))
		{
			options.engineId = engineId();
			options.styleId = styleId;

			OptionsNode styleNode = AEngineNode.node("style",styleId);
			options.extended.insert(MSO_VARIANT,styleNode.value("variant"));
			options.extended.insert(MSO_FONT_FAMILY,styleNode.value("font-family"));
			options.extended.insert(MSO_FONT_SIZE,styleNode.value("font-size"));
			options.extended.insert(MSO_SELF_COLOR,styleNode.value("self-color"));
			options.extended.insert(MSO_CONTACT_COLOR,styleNode.value("contact-color"));
			options.extended.insert(MSO_BG_COLOR,styleNode.value("bg-color"));
			options.extended.insert(MSO_BG_IMAGE_FILE,styleNode.value("bg-image-file"));

			QList<QString> variants = styleVariants(styleId);
			QMap<QString,QVariant> info = styleInfo(styleId);

			if (!variants.contains(options.extended.value(MSO_VARIANT).toString()))
				options.extended.insert(MSO_VARIANT,info.value(MSIV_DEFAULT_VARIANT, variants.value(0)));

			if (info.value(MSIV_DISABLE_CUSTOM_BACKGROUND,false).toBool())
			{
				options.extended.remove(MSO_BG_IMAGE_FILE);
				options.extended.insert(MSO_BG_COLOR,info.value(MSIV_DEFAULT_BACKGROUND_COLOR));
			}
			else if (options.extended.value(MSO_BG_COLOR).toString().isEmpty())
			{
				options.extended.insert(MSO_BG_COLOR,info.value(MSIV_DEFAULT_BACKGROUND_COLOR));
			}

			if (options.extended.value(MSO_FONT_FAMILY).toString().isEmpty())
				options.extended.insert(MSO_FONT_FAMILY,info.value(MSIV_DEFAULT_FONT_FAMILY));
			if (options.extended.value(MSO_FONT_SIZE).toInt() == 0)
				options.extended.insert(MSO_FONT_SIZE,info.value(MSIV_DEFAULT_FONT_SIZE));

			if (options.extended.value(MSO_SELF_COLOR).toString().isEmpty())
				options.extended.insert(MSO_SELF_COLOR,info.value(MSIV_DEFAULT_SELF_COLOR,QColor(Qt::red).name()));
			if (options.extended.value(MSO_CONTACT_COLOR).toString().isEmpty())
				options.extended.insert(MSO_CONTACT_COLOR,info.value(MSIV_DEFAULT_CONTACT_COLOR,QColor(Qt::blue).name()));
		}
		else
		{
			REPORT_ERROR("Failed to find any suitable simple message style");
		}
	}
	else
	{
		REPORT_ERROR(QString("Failed to get adium style options for style=%1: Style not found").arg(AStyleId));
	}

	return options;
}
示例#20
0
QUuid ConnectionManager::loadProxySettings(const OptionsNode &ANode) const
{
	return ANode.value().toString();
}