예제 #1
0
NetworkSettings::NetworkSettings(QWidget *parent) :
    QWidget(parent),
    _ui(new Ui::NetworkSettings)
{
    _ui->setupUi(this);

    _ui->hostLineEdit->setPlaceholderText(tr("Hostname of proxy server"));
    _ui->userLineEdit->setPlaceholderText(tr("Username for proxy server"));
    _ui->passwordLineEdit->setPlaceholderText(tr("Password for proxy server"));

    _ui->typeComboBox->addItem(tr("HTTP(S) proxy"), QNetworkProxy::HttpProxy);
    _ui->typeComboBox->addItem(tr("SOCKS5 proxy"), QNetworkProxy::Socks5Proxy);

    _ui->authRequiredcheckBox->setEnabled(true);

    // Explicitly set up the enabled status of the proxy auth widgets to ensure
    // toggling the parent enables/disables the children
    _ui->userLineEdit->setEnabled(true);
    _ui->passwordLineEdit->setEnabled(true);
    _ui->authWidgets->setEnabled(_ui->authRequiredcheckBox->isChecked());
    connect(_ui->authRequiredcheckBox, SIGNAL(toggled(bool)),
            _ui->authWidgets, SLOT(setEnabled(bool)));

    connect(_ui->manualProxyRadioButton, SIGNAL(toggled(bool)),
            _ui->manualSettings, SLOT(setEnabled(bool)));
    connect(_ui->manualProxyRadioButton, SIGNAL(toggled(bool)),
            _ui->typeComboBox, SLOT(setEnabled(bool)));

    loadProxySettings();
    loadBWLimitSettings();

    // proxy
    connect(_ui->typeComboBox, SIGNAL(currentIndexChanged(int)), SLOT(saveProxySettings()));
    connect(_ui->proxyButtonGroup, SIGNAL(buttonClicked(int)), SLOT(saveProxySettings()));
    connect(_ui->hostLineEdit, SIGNAL(editingFinished()), SLOT(saveProxySettings()));
    connect(_ui->userLineEdit, SIGNAL(editingFinished()), SLOT(saveProxySettings()));
    connect(_ui->passwordLineEdit, SIGNAL(editingFinished()), SLOT(saveProxySettings()));
    connect(_ui->portSpinBox, SIGNAL(editingFinished()), SLOT(saveProxySettings()));
    connect(_ui->authRequiredcheckBox, SIGNAL(toggled(bool)), SLOT(saveProxySettings()));

    connect(_ui->uploadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->noUploadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->autoUploadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->downloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->noDownloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->autoDownloadLimitRadioButton, SIGNAL(clicked()), SLOT(saveBWLimitSettings()));
    connect(_ui->downloadSpinBox, SIGNAL(valueChanged(int)), SLOT(saveBWLimitSettings()));
    connect(_ui->uploadSpinBox, SIGNAL(valueChanged(int)), SLOT(saveBWLimitSettings()));
}
jConnection::jConnection( ConnectionDataHandler* cdh, const QString &profile_name, const QString &account_name )
	: ConnectionBase(cdh), QObject(0)
{
	m_profile_name = profile_name;
	m_account_name = account_name;
	m_error = ConnNotConnected;
	m_is_connecting = false;
	//    m_mutex_locker = 0;
	m_current_host = 0;
	m_socket = 0;
	QObject::connect(this, SIGNAL(startConnection()), this, SLOT(atStartConnection()));
	m_use_dns_srv = false;
	loadProxySettings();
	QSettings settings(QSettings::defaultFormat(), QSettings::UserScope, "qutim/qutim."+m_profile_name, "jabbersettings");
	settings.beginGroup("main");
	m_is_reconnect = settings.value("reconnect",true).toBool();
	settings.endGroup();
	m_reconnect_timer = new QTimer();
	m_reconnect_timer->setInterval(5000);
	QObject::connect(m_reconnect_timer, SIGNAL(timeout()), this, SLOT(reconnect()));
}
void jConnection::loadSettings()
{
	if(m_state != StateDisconnected)
	{
		DEBUG("Try to load settings in %d state", (int)m_state);
		return;
	}
	DEBUG() << Q_FUNC_INFO;
    loadProxySettings();
    m_hosts.clear();
    QSettings settings(QSettings::defaultFormat(), QSettings::UserScope, "qutim/qutim."+m_profile_name+"/jabber."+m_account_name, "accountsettings");

    settings.beginGroup("main");
	JID jid(utils::toStd(m_account_name));

    QString server = utils::fromStd(jid.server());
    int port = settings.value("port",5222).toInt();
    m_use_dns_srv = settings.value("usedns", true).toBool();
    TLSPolicy tls_policy = TLSOptional;
    if(server=="qutim.org")
    {
		server="jabber.qutim.org";
		port = 5222;
		m_use_dns_srv = false;
    }
    bool use_sasl = settings.value("usesasl", true).toBool();
    bool compress = settings.value("compress", true).toBool();
    server = settings.value("server",server).toString();
    m_server = utils::toStd(server);
    m_port = port;
    if(!m_use_dns_srv)
    {
		if(port==-1)
			port = 5222;
		m_hosts << qMakePair( server, port );
    }
    else
	{
		static LogSink logsink;
		DNS::HostMap hosts = DNS::resolve(m_server, logsink);
		DNS::HostMap::iterator h = hosts.begin();
		for(;h!=hosts.end();h++)
		{
			QPair<QString, int> host( utils::fromStd(h->first), h->second );
			static const QRegExp valid_hostname( "(\\w+\\.)+\\w+" );
			Q_ASSERT_X(valid_hostname.isValid(),"jConnection::loadSettings()","Regexp is not valid");
			if( valid_hostname.exactMatch( host.first ) || !QHostAddress( host.first ).isNull() )
				m_hosts.append(host);
		}
		if( m_hosts.isEmpty() )
			m_hosts << qMakePair( server, 5222 );
    }
    switch(settings.value("tlspolicy",1).toInt())
    {
	case 0:
	    tls_policy = TLSDisabled;
	    break;
	case 1:
	    tls_policy = TLSOptional;
	    break;
	case 2:
	    tls_policy = TLSRequired;
	    break;
    }
	settings.endGroup();

	ClientBase *jClient = dynamic_cast<ClientBase*>(m_handler);
	if(!jClient)
	{
		DEBUG("Try to load settings, but handler is not ClientBase. Error os %d", (int)m_error);
		m_handler->handleDisconnect(this, m_error);
		if(!(jClient = dynamic_cast<ClientBase*>(m_handler)))
		{
			DEBUG("Try lo load settings, but handle disconnect go wrong");
			return;
		}
	}

    jClient->setTls(tls_policy);
    jClient->setSasl(use_sasl);
	jClient->setCompression(compress);
}
예제 #4
0
PatMainWindow::PatMainWindow(QWidget *parent) : 
  QMainWindow(parent)
{
  setMinimumSize(950,640);
  setAcceptDrops(true);

  readSettings();

  this->statusBar()->show();

#ifdef Q_OS_LINUX
  QIcon icon = QIcon(":/images/pa_16.png");
  icon.addPixmap(QPixmap(":/images/pa_32.png"));
  icon.addPixmap(QPixmap(":/images/pa_48.png"));
  icon.addPixmap(QPixmap(":/images/pa_64.png"));
  icon.addPixmap(QPixmap(":/images/pa_128.png"));
  icon.addPixmap(QPixmap(":/images/pa_256.png"));
  setWindowIcon(icon);
#endif

  setWindowTitle(QCoreApplication::applicationName());

  setObjectName("MainWindow");
  setStyleSheet("QWidget#MainWindow { background-color: #2C3233; }");

  m_mainSplitter = new QSplitter(Qt::Horizontal); 

  verticalTabWidget = new PatVerticalTabWidget();

  m_mainSplitter->addWidget(verticalTabWidget);

  m_mainRightColumnContainer = new QStackedWidget();
  m_mainRightColumnContainer->setMinimumWidth(235);
  m_mainSplitter->addWidget(m_mainRightColumnContainer);

  m_mainSplitter->setStretchFactor(0,10000);

  setCentralWidget(m_mainSplitter);  

  mainMenu = new PatMainMenu();

  this->setMenuBar(mainMenu);

  connect(mainMenu, &PatMainMenu::newClicked, this, &PatMainWindow::newClicked);

  connect(mainMenu, &PatMainMenu::loadFileClicked, this, &PatMainWindow::loadFileClicked);

  connect(mainMenu, &PatMainMenu::saveFileClicked, this, &PatMainWindow::saveFileClicked);

  connect(mainMenu, &PatMainMenu::saveAsFileClicked, this, &PatMainWindow::saveAsFileClicked);

  connect(mainMenu, &PatMainMenu::clearAllResultsClicked, this, &PatMainWindow::clearAllResultsClicked);

  connect(mainMenu, &PatMainMenu::exportXmlClicked, this, &PatMainWindow::exportXmlClicked);

  connect(mainMenu, &PatMainMenu::exportSpreadsheetClicked, this, &PatMainWindow::exportSpreadsheetClicked);

  connect(mainMenu, &PatMainMenu::scanForToolsClicked, this, &PatMainWindow::scanForToolsClicked);

  connect(mainMenu, &PatMainMenu::showToolsClicked, this, &PatMainWindow::showToolsClicked);

  connect(mainMenu, &PatMainMenu::exitClicked, this, &PatMainWindow::exitClicked);
  
  connect(mainMenu, &PatMainMenu::changeMeasuresClicked, this, &PatMainWindow::changeMeasuresClicked);

  connect(mainMenu, &PatMainMenu::openBclDlgClicked, this, &PatMainWindow::openBclDlgClicked);

  connect(mainMenu, &PatMainMenu::openCloudDlgClicked, this, &PatMainWindow::openCloudDlgClicked);

  connect(mainMenu, &PatMainMenu::openMonitorUseDlgClicked, this, &PatMainWindow::openMonitorUseDlgClicked);

  connect(mainMenu, &PatMainMenu::helpClicked, this, &PatMainWindow::helpClicked);

  connect(mainMenu, &PatMainMenu::aboutClicked, this, &PatMainWindow::aboutClicked);

  connect(mainMenu, &PatMainMenu::configureProxyClicked, this, &PatMainWindow::configureProxyClicked);

  QTimer::singleShot(0, this, SLOT(loadProxySettings()));
}
예제 #5
0
bool Config::loadConfigFile(const std::string &configFilePath)
{
	std::string finalPath;

	if (!configFilePath.empty())
	{
		finalPath = configFilePath;
	}
	else
	{
#ifndef _DEBUG
		finalPath = getExecutablePath();
#else
		finalPath = getCurrentDirectory();
#endif

		finalPath += "sm_config.xml";
	}

//	finalPath = "/Users/peter/sm_config.xml";

	TiXmlDocument doc(finalPath);

	if (!doc.LoadFile())
	{
		return false;
	}

	TiXmlHandle hDoc(&doc);
	TiXmlElement* pElem = NULL;

	pElem = hDoc.FirstChildElement("config").Element();

	if (!pElem)
		return false;

	for (TiXmlElement *pItem = pElem->FirstChildElement(); pItem; pItem = pItem->NextSiblingElement())
	{
		const std::string &elementName = pItem->ValueStr();

		std::string content;
		if (pItem->GetText())
			content = pItem->GetText();

		if (elementName == "web_content_path")
		{
			m_configSettings.m_webContentPath = content;
		}
		else if (elementName == "mon_db_path")
		{
			m_configSettings.m_monitoringDBPath = content;
		}
		else if (elementName == "loadtest_db_path")
		{
			m_configSettings.m_loadTestingDBPath = content;
		}
		else if (elementName == "web_server_port")
		{
			if (!content.empty())
			{
				int port = atoi(content.c_str());
				m_configSettings.m_webServerPort = port;
			}
		}
		else if (elementName == "proxy")
		{
			loadProxySettings(pItem);
		}
	}

	return true;
}