2008-03-03 22:52:07 +00:00
//////////////////////////////////////////////////
// Blabber [ChangeNameWindow.cpp]
//////////////////////////////////////////////////
2019-09-28 20:54:27 +00:00
# include "ChangeNameWindow.h"
# include <cstdio>
# include <Button.h>
# include <GroupView.h>
# include <LayoutBuilder.h>
# include <StringView.h>
2019-09-30 09:30:32 +00:00
# include "../support/AppLocation.h"
2019-09-29 18:55:34 +00:00
# include "../jabber/BlabberSettings.h"
# include "../jabber/JabberSpeak.h"
# include "../jabber/Messages.h"
2019-09-29 08:29:20 +00:00
# include "../ui/ModalAlertFactory.h"
2019-09-29 18:55:34 +00:00
# include "../jabber/TalkManager.h"
2019-09-28 20:54:27 +00:00
ChangeNameWindow : : ChangeNameWindow ( const gloox : : JID & changing_user , BString oldName )
2021-11-16 18:30:46 +00:00
: BWindow ( BRect ( 0 , 0 , 100 , 100 ) , " Change Buddy Name " , B_TITLED_WINDOW ,
2019-09-28 20:54:27 +00:00
B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS ) ,
_changing_user ( changing_user )
{
BGroupView * full_view = new BGroupView ( " main-full " , B_VERTICAL ) ;
full_view - > SetViewUIColor ( B_PANEL_BACKGROUND_COLOR ) ;
SetLayout ( new BGroupLayout ( B_HORIZONTAL ) ) ;
AddChild ( full_view ) ;
BStringView * query = new BStringView ( NULL , " Specify the new \" Nickname \" you'd like to use: " ) ;
2021-11-16 18:30:46 +00:00
2019-09-28 20:54:27 +00:00
_handle = new BTextControl ( NULL , NULL , " " , NULL ) ;
2021-11-16 18:30:46 +00:00
2008-03-03 22:52:07 +00:00
if ( BlabberSettings : : Instance ( ) - > Data ( " last-talk-sent-to " ) ) {
_handle - > SetText ( BlabberSettings : : Instance ( ) - > Data ( " last-talk-sent-to " ) ) ;
} else {
_handle - > SetText ( " somebody@jabber.org " ) ;
}
2021-11-16 18:30:46 +00:00
2019-09-28 20:54:27 +00:00
BButton * cancel = new BButton ( " cancel " , " Nevermind " , new BMessage ( JAB_CANCEL ) ) ;
2008-03-03 22:52:07 +00:00
cancel - > SetTarget ( this ) ;
2019-09-28 20:54:27 +00:00
BButton * ok = new BButton ( " ok " , " Change Name " , new BMessage ( JAB_OK ) ) ;
2008-03-03 22:52:07 +00:00
ok - > MakeDefault ( true ) ;
ok - > SetTarget ( this ) ;
2019-09-28 20:54:27 +00:00
BLayoutBuilder : : Group < > ( full_view )
. SetInsets ( B_USE_WINDOW_INSETS )
. Add ( query )
. Add ( _handle )
. AddGroup ( B_HORIZONTAL )
. AddGlue ( )
. Add ( cancel )
. Add ( ok )
. End ( )
. End ( ) ;
2008-03-03 22:52:07 +00:00
// focus
2019-09-28 20:54:27 +00:00
_handle - > SetText ( oldName ) ;
2008-03-03 22:52:07 +00:00
_handle - > MakeFocus ( true ) ;
2019-09-28 20:54:27 +00:00
CenterOnScreen ( ) ;
2008-03-03 22:52:07 +00:00
}
2019-09-28 20:54:27 +00:00
2008-03-03 22:52:07 +00:00
ChangeNameWindow : : ~ ChangeNameWindow ( ) {
}
void ChangeNameWindow : : MessageReceived ( BMessage * msg ) {
switch ( msg - > what ) {
//// JAB_OK
case JAB_OK : {
if ( ! strcmp ( _handle - > Text ( ) , " " ) ) {
ModalAlertFactory : : Alert ( " You cannot erase your buddy's name. If you're trying to remove this buddy, please use the \" Remove Buddy \" item on the user. " , " Oops! " ) ;
_handle - > MakeFocus ( true ) ;
return ;
}
2021-11-16 18:30:46 +00:00
2008-03-03 22:52:07 +00:00
// re-add to roster
2019-09-28 20:54:27 +00:00
JabberSpeak : : Instance ( ) - > SetFriendlyName ( _changing_user , _handle - > Text ( ) ) ;
2008-03-03 22:52:07 +00:00
PostMessage ( B_QUIT_REQUESTED ) ;
2020-08-21 09:49:53 +00:00
2008-03-03 22:52:07 +00:00
break ;
}
//// JAB_CANCEL
case JAB_CANCEL : {
PostMessage ( B_QUIT_REQUESTED ) ;
break ;
}
}
}