
рд▓реЗрдЦ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдЬреИрд╕реЗ рдХрд┐ Vkontakte API рдФрд░ рдлрд╝реЛрдиреЙрди рдХреЗ рд╕рд╛рде Qt рдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╕реНрд░реЛрдд рдХреЛрдб рд╡рд╛рд▓реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЧреБрд░реБ рдирд╣реАрдВ рд╣реВрдВ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЖрдкрдХреЗ рд╕реБрдзрд╛рд░реЛрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдХреЛ рд╕рд╣рд░реНрд╖ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реВрдВрдЧрд╛ред
рдЬрд╛рдирдХрд╛рд░реА рдХреА рдирдХрд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд┐рдХреА рд╕реЗ рд▓рд┐рдВрдХ рдХрд╛ рд╕рдВрдХреЗрдд рджреВрдВрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢рд╛рдпрдж, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рдХрд╛рд╕ рдЧреНрдиреВ / рд▓рд┐рдирдХреНрд╕ / рдЬреЗрдВрдЯреВ (рдХреЗрдбреАрдИ) рдордВрдЪ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рд╡рд┐рддрд░рдгреЛрдВ рдХреЗ рддрд╣рдд рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:
1. рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ Vkontakte API (рдЗрд╕рдХреЗ рдмрд╛рдж VK) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдгред
2. рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред
3. рдлреЛрдирди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪреА рд╕реЗ рдкрдЯрд░рд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдирд╛ред
4. рдЪрдпрдирд┐рдд рдЧреАрдд рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред
рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдХ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред Qt рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП
WebKit рд╣реИ ред рдШрдЯрдХ рдХреЛ рдкреГрд╖реНрда
vkontakte.ru/login.php рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ VK рдкреГрд╖реНрда /login_success.html рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдЬреИрд╕реЗ рд╕рддреНрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдирдордХ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд▓рд┐рдВрдХ рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ (рдкрд╛рд░реНрд╕) рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ:
QT += webkit \
network \
xml \
phonon
рдЪреВрдВрдХрд┐ VC, XML (рдпрд╛ JSON) рдореЗрдВ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рдкрд╣рд┐рдП рдХреЛ рдлрд┐рд░ рд╕реЗ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XML рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдиреЗрдЯрд╡рд░реНрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рд╡реАрдХреЗ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЧреАрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдлреЛрдирди рдореЙрдбреНрдпреВрд▓ рд╣рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╣рдорд╛рд░реЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЦреБрд╢реА рдХреА рдмрд╛рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВред
рд╡реАрдХреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рд╡реАрдХреЗрдпреВрде рдХреНрд▓рд╛рд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк рд╡реАрдХреЗ рдореЗрдВ рдЕрдкрдирд╛ рдЖрд╡реЗрджрди
рдкрдВрдЬреАрдХреГрдд рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- #include <QApplication>
- # рдЕрд▓рдЧ рдХрд░реЗрдВ <QObject>
- # рдЪрд╛рд▓реВ "рдореЗрдирд╡рд┐рдВрдбреЛ.рдПрдЪ"
- "VKAuth.h"
- int main ( int argc, char ** argv )
- {
- QApplication app ( argc, argv ) ;
- QApplication :: setApplicationName ( "VKaudio" ) ;
- QApplication :: setApplicationVersion ( "0.01a" ) ;
- рдореЗрдирд╡рд┐рдВрдбреЛ рд╡рд┐рдВрдбреЛ ;
- VKAuth vkAuth ( "2169954" ) ; // рдореЗрд░реА рдПрдкреНрд▓реАрдХреЗрд╢рди рдЖрдИ.рдбреА.
- QObject :: рдХрдиреЗрдХреНрдЯ ( рдФрд░ vkAuth, SIGNAL ( рдЕрд╕рдлрд▓ ) ))
- & рдПрдкреНрд▓рд┐рдХреЗрд╢рди, SLOT ( рдЫреЛрдбрд╝реЗрдВ ) ( )
- ) ;
- QObject :: рдХрдиреЗрдХреНрдЯ ( рдФрд░ vkAuth, SIGNAL ( рд╕рдлрд▓рддрд╛ ( QStringList ) ) ,
- рд╡рд┐рдВрдбреЛ, рдПрд╕рдПрд▓рдУрдЯреА ( рд╕реНрд▓рд╛реЕрдЯрд╕ рдЕрд╕рдлрд▓ ( QStringList ) )
- ) ;
- vkAuthред рд╢реЛ ( ) ;
- рд╡рд╛рдкрд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рдиред рдирд┐рд╖реНрдкрд╛рджрди ( ) ;
- }
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рд╡реАрдХреЗрдпреВрде рдХреНрд▓рд╛рд╕ рдПрдХ рд╕рдлрд▓рддрд╛ рд╕рдВрдХреЗрдд рднреЗрдЬрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдЧреАрддреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рдФрд░ рдПрдХ рдЕрд╕рдлрд▓ рд╕рдВрдХреЗрдд рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рд╕рдВрдХреЗрдд рдЖрд╡реЗрджрди рдХреА рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ (рд╕реНрд╡рдпрдВ рдЦрд┐рд▓рд╛рдбрд╝реА) рдХреЗ рд╕реНрд▓реЙрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╕реВрдЪреА рдХреЛ рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢рдЯрдбрд╛рдЙрди рд╕реНрд▓реЙрдЯ (рдирд┐рдХрд╛рд╕) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдХрд╛рд░ рд╕рдВрдХреЗрддред
- VKAuth :: VKAuth ( QString рдРрдк, QWidget * рдорд╛рддрд╛-рдкрд┐рддрд╛ ) : QWebView ( рдорд╛рддрд╛-рдкрд┐рддрд╛ )
- {
- QObject :: рдХрдиреЗрдХреНрдЯ ( рдпрд╣ , SIGNAL ( urlChanged ( QUrl ) ))
- рд╕реНрд▓реЙрдЯ ( рд╕реНрд▓реЛрдЯрд▓рд┐рдВрдХрдЪреЗрдВрдЬ ( QUrl ) )
- ) ;
- m_app = app ;
- loadLoginPage ( ) ;
- }
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рдЖрд╡реЗрджрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдкреВрд░реНрд╡рдЬ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрдЧ QWebView рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рд╡реЗрдмрдХреАрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╡реЗрдм рдкреЗрдЬ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред QWebView рдореЗрдВ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд░ рдмрд╛рд░ рдПрдХ рдкреЗрдЬ рдПрдбреНрд░реЗрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реАрдХреЗ рдПрдХ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди (рдкрддреЗ рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди) рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрдХреЗрдд рд╣рдореЗрдВ рдЗрд╕ рдкрд▓ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреБрдХреНрдд рд╣реИред рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдПрдХ рдирдпрд╛ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо
рдкрд╛рд░реНрд╕ рдХрд░реЗрдВрдЧреЗред
LoadLoginPage () рд╡рд┐рдзрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреГрд╖реНрда рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ
- рд╢реВрдиреНрдп VKAuth :: loadLoginPage ( ) {
- QUAL url ( " vkontakte.ru/login.php" ) ;
- рдпреВрдЖрд░рдПрд▓ред addQueryItem ( "рдРрдк" , m_app ) ;
- рдпреВрдЖрд░рдПрд▓ред addQueryItem ( "рд▓реЗрдЖрдЙрдЯ" , "рдкреЙрдкрдЕрдк" ) ;
- рдпреВрдЖрд░рдПрд▓ред addQueryItem ( "рдкреНрд░рдХрд╛рд░" , "рдмреНрд░рд╛рдЙрдЬрд╝рд░" ) ;
- рдпреВрдЖрд░рдПрд▓ред addQueryItem ( "рд╕реЗрдЯрд┐рдВрдЧреНрд╕" , "8" ) ;
- рд▓реЛрдб ( url ) ;
- }
QUrl рд╡рд░реНрдЧ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреНрд╡рд╛рд░реНрдХ рд▓рд┐рдВрдХ рдХреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рддрд╛ рд╣реИред



AddQueryItem рд╡рд┐рдзрд┐ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП GET рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдирд╛рдо рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдЗрд╕рдХрд╛ рдорд╛рди рд╣реИред
рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдиреЛрдВ рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛:

рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕рдХреА рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдорд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдо рдЙрддреНрдкрдиреНрди URL рдХреЛ QwebView :: рд▓реЛрдб () рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рд╕реЗ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреЗрдЬ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХреГрдд рд╣реИ - рд╡реАрдХреЗ рдПрдХ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдПрдХ рдирдП рдкрддреЗ рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд╕реНрд▓реЙрдЯ рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрддрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
- рд╢реВрдиреНрдп VKAuth :: рд╕реНрд▓реЙрдЯрд▓рд┐рдВрдХрдЪрд╛рд░реНрдЬрд┐рдд
- {
- рдЕрдЧрд░ ( "/api/login_success.html" == urlред рдкрде ( ) ) {
- QRegExp regexp ( " \" рдордзреНрдп \ " : ([^,] +), \" рдЧреБрдкреНрдд \ " : \" ([^,] +) \ " , \" рд╕рд┐рдб \ " : \" ([^,] + ) \ " " ) ;
- рд╕реНрдЯреНрд░рд╕реНрдЯреНрд░рд┐рдВрдЧ str = urlред рдЯреБрдХрдбрд╝рд╛ ( ) ;
- рдЕрдЧрд░ ( - 1 ! = regexpред indexIn ( str ) ) {
- m_mid = regexpред рдЯреЛрдкреА ( 1 ) ;
- m_secret = regexpред рдЯреЛрдкреА ( 2 ) ;
- m_sid = regexpред рдЯреЛрдкреА ( 3 ) ;
- рдХреНрд╡рд┐рдХ рдЕрдиреБрд░реЛрдз ( " api.vkontakte.ru/api.php?" ) ;
- QString рд╕рд┐рдЧ ( getSig ( m_mid, m_secret, "api_id =" + m_app + "рд╡рд┐рдзрд┐ = audio.get" + "uid =" + m_mid + "v = 3.0" ) ) ;
- рдЕрдиреБрд░реЛрдзред addQueryItem ( "api_id" , m_app ) ;
- рдЕрдиреБрд░реЛрдзред addQueryItem ( "рд╡рд┐рдзрд┐" , "рдСрдбрд┐рдпреЛ.рдЧреЗрдЯ" ) ;
- рдЕрдиреБрд░реЛрдзред addQueryItem ( "uid" , m_mid ) ;
- рдЕрдиреБрд░реЛрдзред addQueryItem ( "v" , "3.0" ) ;
- рдЕрдиреБрд░реЛрдзред addQueryItem ( "sig" , sig ) ;
- рдЕрдиреБрд░реЛрдзред addQueryItem ( "рд╕рд┐рдб" , m_sid ) ;
- QNetworkAccessManager * рдкреНрд░рдмрдВрдзрдХ = рдирдпрд╛ QNetworkAccessManager ( рдпрд╣ ) ;
- m_http = manager - > get ( QNetworkRequest ( request ) ) ;
- QObject :: рдХрдиреЗрдХреНрдЯ ( m_http, SIGNAL ( рд╕рдорд╛рдкреНрдд ( ) ) , рдпрд╣ , SLOT ( рд╕реНрд▓реЙрдЯрдбреЛрди ( ) ) ) ;
- }
- } рдФрд░ рдЕрдЧрд░ ( "/api/login_failure.html" == urlред рдкрде ( ) ) {
- рдЕрд╕рдлрд▓ рд╣реЛрдирд╛ ( ) ;
- }
- }
- QByteArray VKAuth :: getSig ( QString рдордзреНрдп, QString рд░рд╣рд╕реНрдп, QString params = "" ) {
- QString str ;
- strред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( рдордзреНрдп ) ;
- рдЕрдЧрд░ ( params рд╣реИред Ismpty ( ) )
- strред append ( рдкрд░рдо ) ;
- strред рдПрдкреЗрдВрдб ( рдЧреБрдкреНрдд ) ;
- рд╡рд╛рдкрд╕реА QCryptographicHash :: рд╣реИрд╢ ( str .Utf8 ( ) , QCryptographicHash :: Md5 ) ред рд╣реЗрдХреНрд╕ ( ) ;
- }
рдЬрд┐рд╕ рд╕реНрд▓реЙрдЯ рдореЗрдВ рд╣рдо рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд╣рд╛рдБ рддрдХ рдЕрдиреБрдкреНрд░реЗрд╖рд┐рдд рдереЗ, рдЕрдЧрд░ redirection login_success.html рдкрд░ рдерд╛ рддреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдлрд▓ рдерд╛ (
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░)ред
рд╣рдо рдПрдХ
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╡реАрдХреЗ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреА, рдЕрд░реНрдерд╛рддреН:
рдордзреНрдп, рд░рд╣рд╕реНрдп, рдХрд┐рдирд╛рд░рд╛ред

рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
рдСрдбрд┐рдпреЛ.рдЧреЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
рд╣реЛрдЧрд╛ ред
Qhttp рд╡рд░реНрдЧ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп
HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рд░рд▓
рдХрд░рддрд╛ рд╣реИ ред
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ GET рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реИрд╢ (рд╡рд┐рдзрд┐ - getSig) рдмрдирд╛рддреЗ рд╣реИрдВред
Qhttp :: рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрдХреЗрдд, рдЬреЛ рдЕрдиреБрд░реЛрдз рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░) рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реНрд▓реЙрдЯ рд╕реНрд▓реЙрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред
- рд╢реВрдиреНрдп VKAuth :: рд╕реНрд▓реЙрдЯрдбреЛрди ( рдмреВрд▓ рддреНрд░реБрдЯрд┐ ) {
- рдЕрдЧрд░ ( рддреНрд░реБрдЯрд┐ )
- рдЕрд╕рдлрд▓ рд╣реЛрдирд╛ ( ) ;
- рдФрд░ {
- QStringList рд╕реВрдЪреА ; // рдПрдордкреА 3 рдХреЗ рд╕рд╛рде рд╕реВрдЪреА
- QDomDocument рдбреЛрдо ;
- рдбреЛрдоред setContent ( m_http - > readAll ( ) ) ;
- QDomElement root = рдбреЛрдоред рдлрд░реНрд╕реНрдЯрдЪрд╛рдЗрд▓реНрдбрдореЗрдВрдЯ ( ) ; // <рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛> рдЬрдбрд╝ рддрддреНрд╡
- QDomNode AudioElement = рд░реВрдЯред рдлрд░реНрд╕реНрдЯрдЪрд╛рдЗрд▓реНрдбрдореЗрдВрдЯ ( ) ; // <рдСрдбрд┐рдпреЛ>
- рдЬрдмрдХрд┐ ( рдСрдбрд┐рдпреЛ-рдХреНрд▓реАрдпрд░реЗрдВрд╕ .Null ( ) ) {
- QString url = AudioElement
- ред рдкреНрд░рд╡реЗрд╢ ( )
- ред рдПрд▓рд┐рдореЗрдВрдЯреНрд╕рдмрд┐рдЬрдирд╛рдо ( "url" )
- ред рдЖрдЗрдЯрдо ( 0 )
- ред рдкреНрд░рд╡реЗрд╢ ( ) // <url>
- ред рдкрд╛рда ( ) ;
- рд╕реВрдЪреАред append ( url ) ;
- AudioElement = AudioElementред рдЕрдЧрд▓рд╛рд╕рд┐рдмрд▓рд┐рдВрдЧ ( ) ; // рдЕрдЧрд▓рд╛ рддрддреНрд╡
- }
- рд╕рдлрд▓рддрд╛ ( рд╕реВрдЪреА ) рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди ; // рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдкреНрд▓реЗрдпрд░ рд╡рд┐рдВрдбреЛ
- рдЫрд┐рдкрд╛рдирд╛ ( ) ; // рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдЫрд┐рдкрд╛рдПрдВ
- }
- m_http - > close ( ) ;
- }
рд╕реНрд▓реЙрдЯ VKAuth :: рд╕реНрд▓реЙрдЯрдбреЛрди рдкреНрд░рд╛рдкреНрдд XML рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдПрдордкреА 3 рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдВрдХ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрд╕реА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдлрд▓рддрд╛ рд╕рдВрдХреЗрдд рднреЗрдЬрддрд╛ рд╣реИ, рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИред рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдиреЗ рдкреНрд░рд╛рдкреНрдд рдЧреАрддреЛрдВ рдХреА рд╕реВрдЪреА рдкрд╛рд░рд┐рдд рдХреАред
phonon
рдлрд╝реЛрдиреЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЖрдкрдХреЛ рдПрдХ рдореЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ (MediaObject рдХреНрд▓рд╛рд╕) рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдСрдбрд┐рдпреЛ (рдФрд░ / рдпрд╛ рд╡реАрдбрд┐рдпреЛ) рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛рдПрдБ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд╝реЛрдирди :: createPath рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВред
MainWindow :: appendToList () рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реВрдЪреА рдХреЛ рдПрдордкреА 3 рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
- рд╢реВрдиреНрдп MainWindow :: appendToList ( ) {
- рдЕрдЧрд░ ( VKAudioListред isEmpty ( ) )
- рд╡рд╛рдкрд╕реА;
- int index = рд╕реНрд░реЛрддред рдЖрдХрд╛рд░ ( ) ;
- foreach ( QString рд╕реНрдЯреНрд░рд┐рдВрдЧ, VKAudioList ) {
- рдлреЛрдирди :: рдореАрдбрд┐рдпрд╛ рд╕реНрд░реЛрдд ( рд╕реНрдЯреНрд░рд┐рдВрдЧ ) ;
- рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИред рдкрд░рд┐рд╢рд┐рд╖реНрдЯ ( рд╕реНрд░реЛрдд ) ;
- }
- рдпрджрд┐ ( рд╕реНрд░реЛрддред ismmpty ( ) )
- metaInformationResolver - > setCurrentSource ( рд╕реНрд░реЛрддред at ( index ) ) ;
- }
рдЪрдпрдирд┐рдд рдЧреАрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рдПрдХ рдЧреАрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдПрдХ рд╕рдВрд╡рд╛рдж рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рди рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ (рд▓рд┐рдЦрдиреЗ) рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдмрдЯрди рдХреНрд▓рд┐рдХ рд╕рд┐рдЧреНрдирд▓ MainWindow :: slotDownload () рд╕реНрд▓реЙрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред

- рд╢реВрдиреНрдп рдореЗрдирд╡реВрдб :: рд╕реНрд▓реЙрдЯрдбрд╛рдЙрдирд▓реЛрдб ( ) {
- рдкрде рдкрде = QFileDialog :: getExistingDirectory ( рдпрд╣ , "рд╕реЗрд╡ рдЯреВ ..." ) ;
- рдЕрдЧрд░ ( рдкрдеред isEmpty ( ) ) {
- m_file = new QFile ;
- int рдЖрдЗрдЯрдо = musicTable - > currentRow ( ) ;
- рдлрд╝реЛрдирди :: MediaSource src = рд╕реНрд░реЛрддред at ( рдЖрдЗрдЯрдо ) ;
- m_pSrcUrl = new QUrl ( srcред url ( ) ) ;
- m_file - > setFileName ( рдкрде + "/" + MusicTable - > рдЖрдЗрдЯрдо ( рдЖрдЗрдЯрдо, musicTable - > currentColumn ( ) ) - > рдкрд╛рда ( ) + ".mp3" ) ;
- рдЕрдЧрд░ ( m_file - > рдЦреБрд▓рд╛ ( QIODevice :: ReadWrite ) ) {
- m_pTcpSocket = рдирдпрд╛ QTcpSocket ( рдпрд╣ ) ;
- m_pTcpSocket - > connectToHost ( m_pSrcUrl - > рд╣реЛрд╕реНрдЯ ( ) , 80 , QIODevice :: ReadWrite ) ;
- рдХрдиреЗрдХреНрдЯ ( m_pTcpSocket, SIGNAL ( рдХрдиреЗрдХреНрдЯреЗрдб ) ) , рдпрд╣ , SLOT ( рд╕реНрд▓реЙрдЯ рдХрдиреЗрдХреНрдЯреЗрдб ( ) ) ) ;
- рдХрдиреЗрдХреНрдЯ ( m_pTcpSocket, SIGNAL ( ReadyRead ( ) ) , рдпрд╣ , SLOT ( slotReadyRead ( ) ) ) ;
- рдХрдиреЗрдХреНрдЯ ( m_pTcpSocket, SIGNAL ( рддреНрд░реБрдЯрд┐ ( QAbstractSocket :: SocketError ) ) ,
- рдпрд╣ , SLOT ( рд╕реНрд▓реЙрдЯрдбрд╛рдЙрдирд▓реЛрдбрд░ ( QAbstractSocket :: SocketError ) )
- ) ;
- рдХрдиреЗрдХреНрдЯ ( m_pTcpSocket, SIGNAL ( рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ ) ( ) ) , рдпрд╣ , SLOT ( рд╕реНрд▓реЙрдЯрдбрд┐рд╕рдХрдиреЗрдХреНрдЯреЗрдб ( ) ) ) ;
- } рдФрд░
- QMessageBox :: рдЪреЗрддрд╛рд╡рдиреА ( рдпрд╣ , "рдЪреЗрддрд╛рд╡рдиреА" , "рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ Err!" ) ;
- }
- }
рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЪреБрдирдиреЗ рдФрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХ рдЧреАрдд рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рдиреЗ (рдмрдирд╛рдиреЗ) рдХреЗ рдмрд╛рдж, рдЬрд┐рд╕реЗ рдЕрднреА рддрдХ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдкрдХреЛ рд╡реАрдХреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╣рдореЗрдВ "рдЧреАрдд" рджреЗ рд╕рдХреЗред рдпрд╣ рд╣рдореЗрдВ QtcpSocket рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдФрд░ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред VK рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЙрд╕реЗ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ:
- рд╢реВрдиреНрдп рдореЗрдирд╡реВрдб :: рд╕реНрд▓реЙрдЯ рдХрдиреЗрдХреНрдЯ ( ) {
- m_pTcpSocket - > рд▓рд┐рдЦрдирд╛ ( QString ( "GET" + m_pSrcUrl - > рдкрд╛рде ( ) + " \ r \ n " )) .Ascicii ( ) ) ;
- }
рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд╣ рд╣рдореЗрдВ рдЧреАрдд рдХреА рд╕рд╛рдордЧреНрд░реА рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрддрд╛ рд╣реИ:
- рд╢реВрдиреНрдп рдореЗрдирд╡реЙрдЗрдб :: рд╕реНрд▓реЙрдЯрд░реИрд░реА рд░реАрдб ( ) {
- m_file - > рд▓рд┐рдЦрдирд╛ ( m_pTcpSocket - > read ( m_pTcpSocket - > bytesAvailable ( ) ) ) ;
- }
рд╡реАрдХреЗ рдЧреАрдд рдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░реА рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
- рд╢реВрдиреНрдп рдореЗрдирд╡реЙрдиреНрдб :: рд╕реНрд▓реЙрдЯрдбрд┐рд╕рдХрдиреЗрдХреНрдЯреЗрдб ( ) {
- m_file - > рдХрд░реАрдм ( ) ;
- m_pTcpSocket - > рдХрд░реАрдм ( ) ;
- }
рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (
рдорд░реНрдХреНрдпреВрд░рд┐рдпрд▓ ) рдХрд╛ рд▓рд┐рдВрдХ:
https://bitbucket.org/denis_medved/vkaudioрдореИрдХреНрд╕ рд╢реЗрд▓реА рдФрд░ bhv рдХреЛ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХ "Qt 4.5: рдкреНрд░реЛрдлреЗрд╢рдирд▓ C ++ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ" рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреВрд░реЗ рдЦреБрд▓реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред
рдЕрджреНрдпрддрди :
рдЕрдкреНрд░рдЪрд▓рд┐рдд QHttp рдФрд░ QTcpSocket рдХреЗ рдмрдЬрд╛рдп, QNetworkAccessManager рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред