亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pppdialer.cpp

?? 將konqueror瀏覽器移植到ARM9 2410中
?? CPP
字號:
#include <config.h>#define REFRESH_INTERVAL_MIN 500#define REFRESH_INTERVAL_DEF 2000#define REFRESH_INTERVAL_MAX 5000#define SECTION_NAME "PPP Dialer"#include "pppdialer.h"#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <fcntl.h>#include <errno.h>#include <signal.h>#include <mainwindowbase.h>#include <qpushbutton.h>#include <qcombobox.h>#include <qlistbox.h>#include <qlabel.h>#include <qlayout.h>#include <qsizepolicy.h>#include <qwidgetstack.h>#include <qaction.h>#include <qregexp.h>#include <qtimer.h>#include <kconfig.h>#include <klocale.h>#include <ksock.h>#include <kapp.h>#if defined(ENABLE_XMLUI)#include <kstddirs.h>#if defined(USE_LARGE_ICONS)#define ACTION_ICON_PATH "konq-embed/actions/big/"#else#define ACTION_ICON_PATH "konq-embed/actions/"#endif#else#include <connect_no.xpm>#include <connect_creating.xpm>#include <connect_established.xpm>#endif // ENABLE_XMLUI#include <kdebug.h>DialerDlg::DialerDlg( KPPPAction *action, QWidget* parent )    : DialerBase( parent, "pppdialer", true, WDestructiveClose ){    m_kaction = action;    m_text = new QLabel( m_switcher );    m_text->setAlignment( AlignLeft | AlignTop | ExpandTabs | WordBreak );    m_text->setFrameStyle( QFrame::Panel | QFrame::Sunken );    m_text->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding ) );    m_switcher->addWidget( m_infos, 0 );    m_switcher->addWidget( m_text, 1 );    setData( action->getCurrentText(), action->getStatusText() );    connect( m_kaction, SIGNAL( accountsAvailable() ),	     this, SLOT( insertAccounts() ) );    m_kaction->listAccounts();}void DialerDlg::setMode( bool connected ){    if ( connected )    {	m_switcher->raiseWidget( 1 );	m_action->setText( i18n( "Hangup" ) );	m_action->setEnabled( true );    }    else    {	m_switcher->raiseWidget( 0 );	m_action->setText( i18n( "Dial" ) );	m_action->setEnabled( m_which->count() != 0 );    }}void DialerDlg::setData( const QString &text, const QString &caption ){    if ( text.isEmpty() )	setMode( false );    else    {	setMode( true );	m_text->setText( text );    }    if ( !caption.isEmpty() )	setCaption( caption );}void DialerDlg::accept(){    if ( m_kaction->getCurrentStatus() == KPPPAction::NoConnection )    {	QString account = m_which->currentText();	if ( !account.isEmpty() )	{	    KConfig *config = KGlobal::config();	    KConfigGroupSaver saver( config, QString::fromLatin1( SECTION_NAME ) );	    config->writeEntry( "LastDialed", account );	    m_kaction->attemptConnect( account );	}    }    else	m_kaction->attemptDisconnect();}void DialerDlg::insertAccounts(){    m_which->clear();    m_which->insertStringList( m_kaction->getAccounts() );    {	KConfig *config = KGlobal::config();	KConfigGroupSaver saver( config, QString::fromLatin1( SECTION_NAME ) );	QString last = config->readEntry( "LastDialed" );	if ( !last.isEmpty() )	{	    QListBoxItem *find = m_which->listBox()->findItem( last );	    if ( find )		m_which->setCurrentItem( m_which->listBox()->index( find ) );	}    }    if ( m_switcher->visibleWidget() == m_infos )	m_action->setEnabled( m_which->count() != 0 );}static DialerDlg *s_dialer = 0;static MainWindowBase *s_main = 0;KPPPAction *KPPPAction::s_action = 0;QString KPPPAction::s_script = QString::null;QPixmap *KPPPAction::s_images[3] = { 0, 0, 0 };int KPPPAction::s_timeout = REFRESH_INTERVAL_DEF;KPPPAction::KPPPAction()    : KAction( QString::null, 0, 0, 0, s_main->actionCollection(), "ppp_dial", false ),      m_lastStat( NoConnection ), m_lastText( QString::null ){    m_auto = false;    m_connect = false;    m_refresh = new QTimer( this );    connect( this, SIGNAL( activated() ),	     this, SLOT( showDialer() ) );    connect( m_refresh, SIGNAL( timeout() ),	     this, SLOT( statusRefresh() ) );}KPPPAction::~KPPPAction(){    delete m_refresh;}void KPPPAction::signalHandler( int sigtype ){    if ( s_action && NOTIFY_SIGNAL == sigtype )	QTimer::singleShot( 0, s_action, SLOT( signalEvent() ) );}bool KPPPAction::createInstance(){    if ( s_action )	return true;    KConfig *config = KGlobal::config();    KConfigGroupSaver saver( config, QString::fromLatin1( "PPP Dialer" ) );    s_script = config->readEntry( "ScriptFile" );    if ( !s_script.isEmpty() )    {	QWidget *top = KApplication::kApplication()->mainWidget();	if ( top && top->inherits( "MainWindowBase" ) )	{	    s_main = static_cast<MainWindowBase*>( top );	    s_timeout = config->readNumEntry( "StatusRate", REFRESH_INTERVAL_DEF );	    if ( s_timeout < REFRESH_INTERVAL_MIN )		s_timeout = REFRESH_INTERVAL_MIN;	    if ( s_timeout > REFRESH_INTERVAL_MAX )		s_timeout = REFRESH_INTERVAL_MAX;#if defined(ENABLE_XMLUI)	    static const char * const default_names[3] =		{ "connect_no", "connect_creating", "connect_established" };	    for ( int i = _first; i <= _last; i++ )	    {		QString icon = config->readEntry( default_names[i],		    QString::fromLatin1( default_names[i] ).append( ".png" ) );		if ( !( icon.isEmpty() || icon.startsWith( "/" ) ) )		    icon = locate( "data", ACTION_ICON_PATH + icon );		s_images[i] = new QPixmap( icon );	    }#else	    s_images[NoConnection] = new QPixmap( connect_no_xpm );	    s_images[Connecting]   = new QPixmap( connect_creating_xpm );	    s_images[Established]  = new QPixmap( connect_established_xpm );#endif	    s_action = new KPPPAction;	    ::signal( NOTIFY_SIGNAL, signalHandler );	    return true;	}	else	    kdWarning()<< "Dialer found no main window!" <<endl;    }    return false;}void KPPPAction::fixConnectStatus(){    switch ( m_lastStat )    {	case NoConnection:	    m_connect = false;	    break;	case Established:	    m_connect = true;	    break;    }}void KPPPAction::setCurrentStatus( int status ){    if ( _first <= status && status <= _last && status != m_lastStat )    {	m_lastStat = status;	fixConnectStatus();	if ( m_qConnected && s_images[status] )	    m_qConnected->setIconSet( QIconSet( *s_images[status] ) );	if ( s_dialer && Established == m_lastStat )	    m_refresh->start( s_timeout );	else	    m_refresh->stop();    }}const QString KPPPAction::getStatusText() const{    switch ( m_lastStat )    {	case NoConnection:	    return i18n( "Disconnected" );	case Connecting:	    return i18n( "Connecting" );	case Established:	    return i18n( "Established" );	default:	    return i18n( "Internal Error" );    }}void KPPPAction::interpretText( const QString &text ){    if ( text.isEmpty() )	return;    unsigned int skip = 0;    if ( text.at( 1 ).latin1() == ' ' )    {	skip = 2;	switch ( text.at( 0 ).latin1() )	{	    case 'L':		if ( text.length() <= skip )		    emit accountsAvailable();		else		    m_accounts << text.mid( skip );		return;	    case 'N':		setCurrentStatus( NoConnection );		m_lastText = QString::null;		if ( s_dialer )		    s_dialer->setData( QString::null, getStatusText() );		return;	    case 'C':	    case 'H':		setCurrentStatus( Connecting );		break;	    case 'E':		setCurrentStatus( Established );		break;	    default:		skip = 0;	}    }    m_lastText = text.mid( skip );    m_lastText.replace( QRegExp( "\a" ), "\n" );    if ( s_dialer )    {	s_dialer->setData( m_lastText, getStatusText() );	if ( m_auto && Established == m_lastStat )	    QTimer::singleShot( 500, s_dialer, SLOT( autoClose() ) );    }}void KPPPAction::readEvent( KSocket *sock ){    // TODO: implement it properly; now it's horrible    char buf[1024];    int r = ::read( sock->socket(), buf, sizeof( buf ) - 1 );    if ( r > 0 )    {	buf[r] = '\0';	for ( char *pc = buf; pc && *pc; )	{	    char *cr = strchr( pc, '\r' );	    char *lf = strchr( pc, '\n' );	    if ( cr )	    {		if ( lf + 1 == cr )		    *cr = 0;		else if ( !lf || cr < lf )		    lf = cr;	    }	    if ( lf )		*lf = 0;	    interpretText( QString::fromLatin1( pc ) );	    pc = lf ? lf + 1 : 0;	}    }}void KPPPAction::closeEvent( KSocket *sock ){    delete sock;}void KPPPAction::signalEvent(){    statusRefresh();    if ( !s_dialer && !m_connect )    {	m_auto = true;	showDialer();    }}bool KPPPAction::scriptExecute( const char *command, const char *arg ){    int spair[2];    if ( 0 == ::socketpair( AF_UNIX, SOCK_STREAM, PF_UNIX, spair ) )    {	int i;	switch( ::fork() )	{	    case -1:		// error		return false;	    case 0:		// child		::dup2( spair[0], 1 );		for ( i=getdtablesize(); i >= 3 ; i-- )		    ::close( i );		::execl( s_script.latin1(), s_script.latin1(),			 command, arg, 0 );		::exit( errno );	    default:		// parent		::close( spair[0] );		::fcntl( spair[1], F_SETFL, O_NONBLOCK );		{		    KSocket *sock = new KSocket( spair[1] );		    connect( sock, SIGNAL( readEvent( KSocket * ) ),			     this, SLOT( readEvent( KSocket * ) ) );		    connect( sock, SIGNAL( closeEvent( KSocket * ) ),			     this, SLOT( closeEvent( KSocket * ) ) );		    sock->enableRead( true );		}		return true;	}    }    return false;}void KPPPAction::attemptConnect( const QString &account ){    fixConnectStatus();    if ( !m_connect )	m_connect = scriptExecute( "connect", account.latin1() );}void KPPPAction::attemptDisconnect(){    m_auto = false;    fixConnectStatus();    if ( m_connect )	m_connect = !scriptExecute( "disconnect" );}void KPPPAction::listAccounts(){    m_accounts.clear();    scriptExecute( "list" );}void KPPPAction::statusRefresh(){    scriptExecute( "status" );}void KPPPAction::showDialer(){    if ( s_dialer )	return;    s_dialer = new DialerDlg( this, s_main );    s_dialer->exec();    s_dialer = 0;    m_auto = false;}PPPInitializer::PPPInitializer(){    QTimer::singleShot( 0, this, SLOT( runInit() ) );}void PPPInitializer::runInit(){    KPPPAction::createInstance();    delete this;}extern "C" void konqe_register_libpppdialer(){    // postpone initialization until main window is created    new PPPInitializer;}#include "pppdialer.moc"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区在线观看视频 | 亚洲精品第1页| 午夜视频一区二区三区| 国产成人精品免费在线| 欧美日韩一级二级三级| 国产精品美女久久福利网站| 日韩精品高清不卡| a在线播放不卡| 久久人人97超碰com| 日日骚欧美日韩| 色偷偷88欧美精品久久久| 久久网这里都是精品| 亚洲视频一区二区免费在线观看 | 性欧美大战久久久久久久久| 国产suv一区二区三区88区| 欧美电影一区二区三区| 亚洲视频资源在线| 成人精品国产一区二区4080| 日韩视频免费观看高清完整版| 亚洲黄色在线视频| 97精品视频在线观看自产线路二| 国产亚洲1区2区3区| 极品少妇xxxx精品少妇| 69p69国产精品| 午夜欧美视频在线观看| 欧美日韩亚洲不卡| 亚洲国产一二三| 色噜噜久久综合| 亚洲精品成a人| 日本丶国产丶欧美色综合| 亚洲欧洲在线观看av| 成人美女视频在线看| 欧美国产日本韩| 国产ts人妖一区二区| 国产欧美精品一区| 国产成人午夜精品影院观看视频 | 日韩视频在线观看一区二区| 亚洲v精品v日韩v欧美v专区| 欧美中文字幕一区| 亚洲一区二区在线免费观看视频| 91美女片黄在线观看91美女| 亚洲少妇屁股交4| 91免费看`日韩一区二区| **欧美大码日韩| 91福利国产成人精品照片| 亚洲成人动漫在线免费观看| 欧美另类z0zxhd电影| 免费观看一级欧美片| 日韩精品一区二| 国产精品一品视频| 国产精品盗摄一区二区三区| 91麻豆精品在线观看| 夜夜嗨av一区二区三区| 日韩一卡二卡三卡四卡| 国产精品中文字幕欧美| 国产精品美女久久久久久| 日本韩国欧美国产| 五月婷婷久久丁香| 久久久久国产精品麻豆| av成人免费在线观看| 亚洲永久免费视频| 日韩欧美电影一区| eeuss鲁片一区二区三区在线观看| 亚洲一区二三区| 久久中文字幕电影| 在线观看欧美黄色| 久久国产精品露脸对白| 国产精品拍天天在线| 欧美日韩大陆一区二区| 福利一区在线观看| 午夜精品久久久久久久久久久| 2020国产精品| 欧美视频在线一区| 成人小视频在线| 亚洲午夜免费电影| 国产日本欧洲亚洲| 91精品国产入口| 97se狠狠狠综合亚洲狠狠| 日韩va欧美va亚洲va久久| 国产精品久99| 日韩手机在线导航| 欧美在线免费观看视频| 成人性生交大片免费| 日本欧美一区二区在线观看| 亚洲三级免费观看| 久久久久久麻豆| 欧美日韩午夜在线| gogo大胆日本视频一区| 狠狠色狠狠色综合日日91app| 亚洲精品日产精品乱码不卡| 久久久久久久久久久久久夜| 欧美久久一二三四区| www.亚洲人| 国产精品18久久久久久vr| 奇米777欧美一区二区| 亚洲综合在线观看视频| 国产精品久久久久久户外露出| 日韩网站在线看片你懂的| 在线观看成人小视频| eeuss鲁片一区二区三区 | 国产精品久线在线观看| 精品日韩成人av| 欧美一级欧美三级| 欧美日韩视频第一区| 91香蕉视频污| 91免费看`日韩一区二区| 国产精品主播直播| 久久精品国产免费看久久精品| 婷婷丁香激情综合| 亚洲第一搞黄网站| 欧美国产一区二区在线观看| 欧美国产一区二区| 国产欧美日本一区视频| 国产精品婷婷午夜在线观看| 国产亚洲精品bt天堂精选| 精品美女在线播放| 久久久一区二区| www国产精品av| 久久综合色播五月| 国产日韩v精品一区二区| 日本一区二区三区国色天香| 久久美女高清视频| 中文字幕免费不卡| 欧美国产视频在线| 亚洲视频一二区| 亚洲一区二区三区不卡国产欧美| 亚洲一区二区三区免费视频| 亚洲中国最大av网站| 日韩成人免费看| 国产一区二区在线看| 国产精品综合av一区二区国产馆| 国产成人免费高清| 91影院在线免费观看| 欧美日韩色一区| 精品少妇一区二区三区视频免付费 | 亚洲第一福利一区| 石原莉奈在线亚洲二区| 国内欧美视频一区二区| 国产成人福利片| 91高清视频在线| 欧美一区二区黄| 日本一区二区在线不卡| 亚洲免费观看高清| 日韩—二三区免费观看av| 国产精品一级二级三级| 99久久婷婷国产综合精品电影| 在线观看视频一区二区| 欧美成人精品1314www| 久久精品欧美一区二区三区不卡| 国产精品久久久久一区| 亚洲3atv精品一区二区三区| 国内精品国产三级国产a久久| 丁香婷婷深情五月亚洲| 欧美日本精品一区二区三区| 久久久久久久久久久久久女国产乱| 国产精品美女久久久久久久| 亚洲影视在线观看| 国产精品主播直播| 欧美日韩精品欧美日韩精品| 久久久综合视频| 性久久久久久久久| 北条麻妃国产九九精品视频| 日韩视频在线观看一区二区| 中文字幕av免费专区久久| 日本免费新一区视频| 成人av电影观看| 日韩午夜在线播放| 亚洲精品免费在线观看| 国产精品一区在线观看乱码| 欧美中文字幕一区二区三区| 国产视频在线观看一区二区三区 | 欧美浪妇xxxx高跟鞋交| 久久久精品免费观看| 亚洲国产婷婷综合在线精品| 成人综合在线视频| 日韩亚洲欧美高清| 亚洲自拍与偷拍| av资源站一区| 久久精品人人做| 激情小说欧美图片| 欧美一级在线观看| 亚洲影院久久精品| 91久久久免费一区二区| 国产精品美女久久久久久| 国产精品小仙女| 精品毛片乱码1区2区3区| 日韩激情av在线| 在线看一区二区| 亚洲手机成人高清视频| 97久久超碰国产精品电影| 欧美激情艳妇裸体舞| 五月天视频一区| 欧美久久一二区| 日本欧美在线观看| 日韩一级视频免费观看在线| 一区二区三区视频在线看| 91视频观看视频| 亚洲精品亚洲人成人网在线播放| 99免费精品在线| 综合久久久久久久|