@ -59,7 +59,7 @@ StreamPublishWindow::StreamPublishWindow(StreamPublishEngine* engine, uint64_t g
for ( int angle : { 0 , 90 , 270 } ) {
auto * button = new QPushButton ( QStringLiteral ( " %1° " ) . arg ( angle ) , settings ) ; button - > setCheckable ( true ) ; button - > setFixedSize ( 66 , 34 ) ;
QPixmap icon ( 20 , 20 ) ; icon . fill ( Qt : : transparent ) ; QPainter painter ( & icon ) ;
painter . translate ( 10 , 10 ) ; painter . rotate ( angle ) ; painter . setPen ( QPen ( QColor ( " #e53935 " ) , 3 ) ) ; painter . drawLine ( - 6 , - 6 , 6 , - 6 ) ;
painter . translate ( 10 , 10 ) ; painter . rotate ( - angle ) ; painter . setPen ( QPen ( QColor ( " #e53935 " ) , 3 ) ) ; painter . drawLine ( - 6 , - 6 , 6 , - 6 ) ;
painter . setPen ( QPen ( palette ( ) . color ( QPalette : : Text ) , 1 ) ) ; painter . drawLine ( - 6 , - 4 , - 6 , 6 ) ; painter . drawLine ( 6 , - 4 , 6 , 6 ) ; painter . drawLine ( - 6 , 6 , 6 , 6 ) ;
painter . end ( ) ; button - > setIcon ( QIcon ( icon ) ) ; button - > setToolTip ( text ( " The red edge marks the top for viewers " ) ) ;
button - > setStyleSheet ( " QPushButton:checked { background: #1976d2; color: white; } " ) ;
@ -137,6 +137,13 @@ void StreamPublishWindow::synchronize() {
& & m_sources [ i ] . id = = config . source . id & & m_sources [ i ] . window = = config . source . window ) m_source - > setCurrentIndex ( i ) ;
for ( int i = 0 ; i < m_mode - > count ( ) ; i + + ) if ( m_mode - > itemData ( i ) . toList ( ) = = QVariantList { config . video . width , config . video . height , config . video . fps } ) m_mode - > setCurrentIndex ( i ) ;
m_codec - > setCurrentIndex ( m_codec - > findData ( config . video . codec ) ) ;
int automatic = std : : clamp ( config . video . width * config . video . height * config . video . fps / 11 , 250000 , 16000000 ) ;
int bitrateIndex = config . video . bitrate = = automatic & & m_bitrate - > currentData ( ) . toInt ( ) = = 0 ? 0 : m_bitrate - > findData ( config . video . bitrate ) ;
if ( bitrateIndex < 0 ) {
m_bitrate - > addItem ( QStringLiteral ( " %1 Mbit/s " ) . arg ( config . video . bitrate / 1000000.0 , 0 , ' f ' , 2 ) , config . video . bitrate ) ;
bitrateIndex = m_bitrate - > count ( ) - 1 ;
}
m_bitrate - > setCurrentIndex ( bitrateIndex ) ;
if ( auto * button = m_rotation - > button ( config . video . rotation ) ) button - > setChecked ( true ) ;
m_audio - > setChecked ( config . audio ) ; m_microphone - > setCurrentIndex ( m_microphone - > findData ( config . microphone ) ) ;
}