Esempio n. 1
0
        public MainWindow()
        {
            SetupUi();
            base.WindowFlags = (uint)Qt.WindowType.FramelessWindowHint;

            closeButton.icon = new QIcon(new QPixmap("resource:/stock-close_12.png"));
            menuButton.icon = new QIcon(new QPixmap("resource:/menu-icon.png"));

            // FIXME: Add a global "Application Icon" somewhere that contains multiple sizes.
            QPixmap pixmap = new QPixmap("resource:/octy-22.png");
            base.WindowIcon = new QIcon(pixmap);

            m_NoAccountsStyleSheet = Util.ReadResource("mainwindow-noaccounts.qss");
            m_StyleSheet = Util.ReadResource("mainwindow.qss");

            containerWidget.SetStyleSheet(m_StyleSheet);

            QVBoxLayout layout = new QVBoxLayout();
            layout.SetContentsMargins(0, 0, 0, 0);
            contentWidget.SetLayout(layout);

            m_RosterWidget = new RosterWidget(contentWidget);
            contentWidget.Layout().AddWidget(m_RosterWidget);

            m_NoAccountsWidget = new NoAccountsWidget(contentWidget);
            contentWidget.Layout().AddWidget(m_NoAccountsWidget);

            // This makes the shortcut work.
            base.AddAction(Gui.GlobalActions.QuitAction);

            m_MainMenu = new QMenu(this);
            m_MainMenu.AddAction(Gui.GlobalActions.NewMessageAction);
            m_MainMenu.AddAction(Gui.GlobalActions.JoinConferenceAction);
            m_MainMenu.AddAction(Gui.GlobalActions.ShowBrowserAction);
            m_MainMenu.AddAction(Gui.GlobalActions.EditProfileAction);
            m_MainMenu.AddAction(Gui.GlobalActions.ChangeStatusAction);
            m_MainMenu.AddSeparator();
            m_MainMenu.AddAction(Gui.GlobalActions.ShowPreferencesAction);
            m_MainMenu.AddSeparator();
            m_MainMenu.AddAction(Gui.GlobalActions.AboutAction);
            m_MainMenu.AddAction(Gui.GlobalActions.SendFeedbackAction);
            m_MainMenu.AddSeparator();
            m_MainMenu.AddAction(Gui.GlobalActions.QuitAction);

            Gui.CenterWidgetOnScreen(this);

            headerLabel.InstallEventFilter(new WindowMover(this));

            AccountService accountService = ServiceManager.Get<AccountService>();
            accountService.AccountAdded   += AddAccount;
            accountService.AccountRemoved += RemoveAccount;

            foreach (Account account in accountService.Accounts) {
                AddAccount(account);
            }
        }
Esempio n. 2
0
 protected void SetupUi()
 {
     base.ObjectName = "InviteToMucDialog";
     this.Geometry = new QRect(0, 0, 402, 289);
     this.WindowTitle = "Invite to Conference";
     QVBoxLayout verticalLayout;
     verticalLayout = new QVBoxLayout(this);
     verticalLayout.Margin = 6;
     this.stackedWidget = new QStackedWidget(this);
     this.stackedWidget.ObjectName = "stackedWidget";
     this.stackedWidget.CurrentIndex = 0;
     verticalLayout.AddWidget(this.stackedWidget);
     this.page = new QWidget(this.stackedWidget);
     this.page.ObjectName = "page";
     QVBoxLayout verticalLayout_2;
     verticalLayout_2 = new QVBoxLayout(this.page);
     verticalLayout_2.Margin = 0;
     this.label = new QLabel(this.page);
     this.label.ObjectName = "label";
     this.label.Text = "Select Conference:";
     verticalLayout_2.AddWidget(this.label);
     this.mucsListWidget = new QListWidget(this.page);
     this.mucsListWidget.ObjectName = "mucsListWidget";
     this.mucsListWidget.selectionBehavior = QAbstractItemView.SelectionBehavior.SelectRows;
     verticalLayout_2.AddWidget(this.mucsListWidget);
     this.stackedWidget.AddWidget(this.page);
     this.page_2 = new QWidget(this.stackedWidget);
     this.page_2.ObjectName = "page_2";
     QVBoxLayout verticalLayout_3;
     verticalLayout_3 = new QVBoxLayout(this.page_2);
     verticalLayout_3.Margin = 0;
     this.tabWidget = new QTabWidget(this.page_2);
     this.tabWidget.ObjectName = "tabWidget";
     this.tabWidget.CurrentIndex = 0;
     verticalLayout_3.AddWidget(this.tabWidget);
     this.tab = new QWidget(this.tabWidget);
     this.tab.ObjectName = "tab";
     QVBoxLayout verticalLayout_5;
     verticalLayout_5 = new QVBoxLayout(this.tab);
     verticalLayout_5.Margin = 6;
     this.label_3 = new QLabel(this.tab);
     this.label_3.ObjectName = "label_3";
     this.label_3.Text = "Select friends to invite:";
     verticalLayout_5.AddWidget(this.label_3);
     this.friendsListWidget = new QListWidget(this.tab);
     this.friendsListWidget.ObjectName = "friendsListWidget";
     verticalLayout_5.AddWidget(this.friendsListWidget);
     this.tabWidget.AddTab(this.tab, "Invite Friends");
     this.tab_2 = new QWidget(this.tabWidget);
     this.tab_2.ObjectName = "tab_2";
     QVBoxLayout verticalLayout_4;
     verticalLayout_4 = new QVBoxLayout(this.tab_2);
     verticalLayout_4.SetContentsMargins(6, 6, 6, 0);
     this.label_2 = new QLabel(this.tab_2);
     this.label_2.ObjectName = "label_2";
     this.label_2.Text = "Send this URL to anybody:";
     verticalLayout_4.AddWidget(this.label_2);
     this.urlLineEdit = new QLineEdit(this.tab_2);
     this.urlLineEdit.ObjectName = "urlLineEdit";
     this.urlLineEdit.ReadOnly = true;
     verticalLayout_4.AddWidget(this.urlLineEdit);
     QHBoxLayout horizontalLayout;
     horizontalLayout = new QHBoxLayout();
     verticalLayout_4.AddLayout(horizontalLayout);
     this.emailButton = new QPushButton(this.tab_2);
     this.emailButton.ObjectName = "emailButton";
     this.emailButton.Text = "&Email";
     horizontalLayout.AddWidget(this.emailButton);
     this.copyButton = new QPushButton(this.tab_2);
     this.copyButton.ObjectName = "copyButton";
     this.copyButton.Text = "&Copy";
     horizontalLayout.AddWidget(this.copyButton);
     QSpacerItem horizontalSpacer;
     horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum);
     horizontalLayout.AddItem(horizontalSpacer);
     QSpacerItem verticalSpacer;
     verticalSpacer = new QSpacerItem(20, 99, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding);
     verticalLayout_4.AddItem(verticalSpacer);
     this.tabWidget.AddTab(this.tab_2, "Invite Anyone");
     this.stackedWidget.AddWidget(this.page_2);
     this.buttonBox = new QDialogButtonBox(this);
     this.buttonBox.ObjectName = "buttonBox";
     this.buttonBox.Orientation = Qt.Orientation.Horizontal;
     this.buttonBox.StandardButtons = ((global::Qyoto.Qyoto.GetCPPEnumValue("QDialogButtonBox", "Cancel") | global::Qyoto.Qyoto.GetCPPEnumValue("QDialogButtonBox", "Close")) | global::Qyoto.Qyoto.GetCPPEnumValue("QDialogButtonBox", "Ok"));
     verticalLayout.AddWidget(this.buttonBox);
     QObject.Connect(buttonBox, Qt.SIGNAL("accepted()"), this, Qt.SLOT("accept()"));
     QObject.Connect(buttonBox, Qt.SIGNAL("rejected()"), this, Qt.SLOT("reject()"));
     QMetaObject.ConnectSlotsByName(this);
 }
Esempio n. 3
0
 protected void SetupUi()
 {
     base.ObjectName = "RosterWidget";
     this.Geometry = new QRect(0, 0, 352, 538);
     this.WindowTitle = "RosterWidget";
     this.StyleSheet = "";
     QVBoxLayout verticalLayout_6;
     verticalLayout_6 = new QVBoxLayout(this);
     verticalLayout_6.Spacing = 0;
     verticalLayout_6.sizeConstraint = QLayout.SizeConstraint.SetDefaultConstraint;
     verticalLayout_6.Margin = 0;
     this.m_AccountsContainer = new QWidget(this);
     this.m_AccountsContainer.ObjectName = "m_AccountsContainer";
     QSizePolicy m_AccountsContainer_sizePolicy;
     m_AccountsContainer_sizePolicy = new QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Preferred);
     m_AccountsContainer_sizePolicy.SetVerticalStretch(0);
     m_AccountsContainer_sizePolicy.SetHorizontalStretch(0);
     m_AccountsContainer_sizePolicy.SetHeightForWidth(this.m_AccountsContainer.SizePolicy.HasHeightForWidth());
     this.m_AccountsContainer.SizePolicy = m_AccountsContainer_sizePolicy;
     verticalLayout_6.AddWidget(this.m_AccountsContainer);
     this.notificationsWidget = new Synapse.QtClient.Widgets.NotificationsWidget(this);
     this.notificationsWidget.ObjectName = "notificationsWidget";
     this.notificationsWidget.FrameShape = QFrame.Shape.NoFrame;
     this.notificationsWidget.FrameShadow = QFrame.Shadow.Raised;
     verticalLayout_6.AddWidget(this.notificationsWidget);
     this.splitter = new QSplitter(this);
     this.splitter.ObjectName = "splitter";
     this.splitter.Orientation = Qt.Orientation.Vertical;
     verticalLayout_6.AddWidget(this.splitter);
     this.widget = new QWidget(this.splitter);
     this.widget.ObjectName = "widget";
     QVBoxLayout verticalLayout_2;
     verticalLayout_2 = new QVBoxLayout(this.widget);
     verticalLayout_2.Margin = 0;
     this.tabWidget = new Synapse.QtClient.Widgets.MainTabWidget(this.widget);
     this.tabWidget.ObjectName = "tabWidget";
     this.tabWidget.tabPosition = QTabWidget.TabPosition.South;
     this.tabWidget.CurrentIndex = 0;
     verticalLayout_2.AddWidget(this.tabWidget);
     this.friendsTab = new QWidget(this.tabWidget);
     this.friendsTab.ObjectName = "friendsTab";
     QVBoxLayout verticalLayout_4;
     verticalLayout_4 = new QVBoxLayout(this.friendsTab);
     verticalLayout_4.Spacing = 0;
     verticalLayout_4.Margin = 0;
     this.gridHeader = new QFrame(this.friendsTab);
     this.gridHeader.ObjectName = "gridHeader";
     this.gridHeader.AutoFillBackground = true;
     this.gridHeader.FrameShape = QFrame.Shape.NoFrame;
     this.gridHeader.FrameShadow = QFrame.Shadow.Raised;
     QHBoxLayout horizontalLayout_6;
     horizontalLayout_6 = new QHBoxLayout(this.gridHeader);
     horizontalLayout_6.Spacing = 3;
     horizontalLayout_6.Margin = 3;
     this.statsLabel = new QLabel(this.gridHeader);
     this.statsLabel.ObjectName = "statsLabel";
     QSizePolicy statsLabel_sizePolicy;
     statsLabel_sizePolicy = new QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred);
     statsLabel_sizePolicy.SetVerticalStretch(0);
     statsLabel_sizePolicy.SetHorizontalStretch(0);
     statsLabel_sizePolicy.SetHeightForWidth(this.statsLabel.SizePolicy.HasHeightForWidth());
     this.statsLabel.SizePolicy = statsLabel_sizePolicy;
     this.statsLabel.Text = "";
     horizontalLayout_6.AddWidget(this.statsLabel);
     this.rosterSearchButton = new QPushButton(this.gridHeader);
     this.rosterSearchButton.ObjectName = "rosterSearchButton";
     this.rosterSearchButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.rosterSearchButton.ToolTip = "Search friends";
     this.rosterSearchButton.Text = "";
     this.rosterSearchButton.Checkable = true;
     this.rosterSearchButton.Checked = false;
     this.rosterSearchButton.Flat = true;
     horizontalLayout_6.AddWidget(this.rosterSearchButton);
     this.rosterViewButton = new QPushButton(this.gridHeader);
     this.rosterViewButton.ObjectName = "rosterViewButton";
     this.rosterViewButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.rosterViewButton.ToolTip = "Change view options";
     this.rosterViewButton.Text = "";
     this.rosterViewButton.Flat = true;
     horizontalLayout_6.AddWidget(this.rosterViewButton);
     this.addFriendButton = new QPushButton(this.gridHeader);
     this.addFriendButton.ObjectName = "addFriendButton";
     this.addFriendButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.addFriendButton.ToolTip = "Add & Invite new friends";
     this.addFriendButton.Text = "";
     this.addFriendButton.Flat = true;
     horizontalLayout_6.AddWidget(this.addFriendButton);
     verticalLayout_4.AddWidget(this.gridHeader);
     this.friendSearchContainer = new QWidget(this.friendsTab);
     this.friendSearchContainer.ObjectName = "friendSearchContainer";
     QHBoxLayout horizontalLayout;
     horizontalLayout = new QHBoxLayout(this.friendSearchContainer);
     horizontalLayout.Spacing = 0;
     horizontalLayout.Margin = 3;
     this.friendSearchLineEdit = new QLineEdit(this.friendSearchContainer);
     this.friendSearchLineEdit.ObjectName = "friendSearchLineEdit";
     horizontalLayout.AddWidget(this.friendSearchLineEdit);
     verticalLayout_4.AddWidget(this.friendSearchContainer);
     this.rosterGrid = new Synapse.QtClient.Widgets.AvatarGrid<Synapse.UI.RosterItem>(this.friendsTab);
     this.rosterGrid.ObjectName = "rosterGrid";
     this.rosterGrid.FocusPolicy = Qt.FocusPolicy.StrongFocus;
     this.rosterGrid.FrameShape = QFrame.Shape.NoFrame;
     this.rosterGrid.Alignment = ((global::Qyoto.Qyoto.GetCPPEnumValue("Qt", "AlignLeading") | global::Qyoto.Qyoto.GetCPPEnumValue("Qt", "AlignLeft")) | global::Qyoto.Qyoto.GetCPPEnumValue("Qt", "AlignTop"));
     verticalLayout_4.AddWidget(this.rosterGrid);
     this.tabWidget.AddTab(this.friendsTab, "Friends");
     this.chatroomsTab = new QWidget(this.tabWidget);
     this.chatroomsTab.ObjectName = "chatroomsTab";
     QVBoxLayout verticalLayout_3;
     verticalLayout_3 = new QVBoxLayout(this.chatroomsTab);
     verticalLayout_3.Spacing = 0;
     verticalLayout_3.Margin = 0;
     this.joinMucHeader = new QFrame(this.chatroomsTab);
     this.joinMucHeader.ObjectName = "joinMucHeader";
     this.joinMucHeader.FrameShape = QFrame.Shape.NoFrame;
     this.joinMucHeader.FrameShadow = QFrame.Shadow.Raised;
     QHBoxLayout horizontalLayout_5;
     horizontalLayout_5 = new QHBoxLayout(this.joinMucHeader);
     horizontalLayout_5.Spacing = 3;
     horizontalLayout_5.Margin = 3;
     this.label_7 = new QLabel(this.joinMucHeader);
     this.label_7.ObjectName = "label_7";
     QSizePolicy label_7_sizePolicy;
     label_7_sizePolicy = new QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred);
     label_7_sizePolicy.SetVerticalStretch(0);
     label_7_sizePolicy.SetHorizontalStretch(0);
     label_7_sizePolicy.SetHeightForWidth(this.label_7.SizePolicy.HasHeightForWidth());
     this.label_7.SizePolicy = label_7_sizePolicy;
     this.label_7.Text = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\np, li { white-space: pre-wrap; }\n</style></head><body style=\" font-family:'Bitstream Vera Sans'; font-size:9pt; font-weight:400; font-style:normal;\">\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';\">Join or Create Conference</p></body></html>";
     horizontalLayout_5.AddWidget(this.label_7);
     this.toggleJoinMucButton = new QPushButton(this.joinMucHeader);
     this.toggleJoinMucButton.ObjectName = "toggleJoinMucButton";
     this.toggleJoinMucButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.toggleJoinMucButton.Text = "";
     this.toggleJoinMucButton.Flat = true;
     horizontalLayout_5.AddWidget(this.toggleJoinMucButton);
     verticalLayout_3.AddWidget(this.joinMucHeader);
     this.joinMucContainer = new QWidget(this.chatroomsTab);
     this.joinMucContainer.ObjectName = "joinMucContainer";
     QVBoxLayout verticalLayout_5;
     verticalLayout_5 = new QVBoxLayout(this.joinMucContainer);
     verticalLayout_5.SetContentsMargins(0, 0, 0, 6);
     QGridLayout gridLayout;
     gridLayout = new QGridLayout();
     verticalLayout_5.AddLayout(gridLayout);
     gridLayout.SetContentsMargins(6, 6, 6, 0);
     this.label_2 = new QLabel(this.joinMucContainer);
     this.label_2.ObjectName = "label_2";
     this.label_2.Text = "Room:";
     gridLayout.AddWidget(this.label_2, 0, 0, 1, 1);
     this.label_5 = new QLabel(this.joinMucContainer);
     this.label_5.ObjectName = "label_5";
     this.label_5.Text = "Server:";
     gridLayout.AddWidget(this.label_5, 1, 0, 1, 1);
     this.mucServerLineEdit = new QLineEdit(this.joinMucContainer);
     this.mucServerLineEdit.ObjectName = "mucServerLineEdit";
     this.mucServerLineEdit.Text = "conference.extremeboredom.net";
     gridLayout.AddWidget(this.mucServerLineEdit, 1, 1, 1, 1);
     this.mucRoomLineEdit = new QLineEdit(this.joinMucContainer);
     this.mucRoomLineEdit.ObjectName = "mucRoomLineEdit";
     this.mucRoomLineEdit.Text = "synapse";
     gridLayout.AddWidget(this.mucRoomLineEdit, 0, 1, 1, 1);
     this.label_6 = new QLabel(this.joinMucContainer);
     this.label_6.ObjectName = "label_6";
     this.label_6.Text = "Nickname:";
     gridLayout.AddWidget(this.label_6, 2, 0, 1, 1);
     this.mucNicknameLineEdit = new QLineEdit(this.joinMucContainer);
     this.mucNicknameLineEdit.ObjectName = "mucNicknameLineEdit";
     gridLayout.AddWidget(this.mucNicknameLineEdit, 2, 1, 1, 1);
     this.label = new QLabel(this.joinMucContainer);
     this.label.ObjectName = "label";
     this.label.Text = "Password:"******"mucPasswordLineEdit";
     gridLayout.AddWidget(this.mucPasswordLineEdit, 3, 1, 1, 1);
     QHBoxLayout horizontalLayout_4;
     horizontalLayout_4 = new QHBoxLayout();
     verticalLayout_5.AddLayout(horizontalLayout_4);
     horizontalLayout_4.SetContentsMargins(6, 0, 6, 0);
     this.pushButton = new QPushButton(this.joinMucContainer);
     this.pushButton.ObjectName = "pushButton";
     this.pushButton.Text = "Browse...";
     horizontalLayout_4.AddWidget(this.pushButton);
     QSpacerItem horizontalSpacer_3;
     horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum);
     horizontalLayout_4.AddItem(horizontalSpacer_3);
     this.m_JoinChatButton = new QPushButton(this.joinMucContainer);
     this.m_JoinChatButton.ObjectName = "m_JoinChatButton";
     this.m_JoinChatButton.Text = "Join";
     horizontalLayout_4.AddWidget(this.m_JoinChatButton);
     verticalLayout_3.AddWidget(this.joinMucContainer);
     this.yourMucsHeader = new QFrame(this.chatroomsTab);
     this.yourMucsHeader.ObjectName = "yourMucsHeader";
     this.yourMucsHeader.FrameShape = QFrame.Shape.NoFrame;
     this.yourMucsHeader.FrameShadow = QFrame.Shadow.Raised;
     QHBoxLayout horizontalLayout_7;
     horizontalLayout_7 = new QHBoxLayout(this.yourMucsHeader);
     horizontalLayout_7.Spacing = 3;
     horizontalLayout_7.Margin = 3;
     this.label_4 = new QLabel(this.yourMucsHeader);
     this.label_4.ObjectName = "label_4";
     QSizePolicy label_4_sizePolicy;
     label_4_sizePolicy = new QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred);
     label_4_sizePolicy.SetVerticalStretch(0);
     label_4_sizePolicy.SetHorizontalStretch(0);
     label_4_sizePolicy.SetHeightForWidth(this.label_4.SizePolicy.HasHeightForWidth());
     this.label_4.SizePolicy = label_4_sizePolicy;
     this.label_4.Text = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\np, li { white-space: pre-wrap; }\n</style></head><body style=\" font-family:'Bitstream Vera Sans'; font-size:9pt; font-weight:400; font-style:normal;\">\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';\">Your Conferences</p></body></html>";
     horizontalLayout_7.AddWidget(this.label_4);
     this.addMucBookmarkButton = new QPushButton(this.yourMucsHeader);
     this.addMucBookmarkButton.ObjectName = "addMucBookmarkButton";
     this.addMucBookmarkButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.addMucBookmarkButton.Text = "";
     this.addMucBookmarkButton.Flat = true;
     horizontalLayout_7.AddWidget(this.addMucBookmarkButton);
     verticalLayout_3.AddWidget(this.yourMucsHeader);
     this.mucTree = new QTreeView(this.chatroomsTab);
     this.mucTree.ObjectName = "mucTree";
     this.mucTree.FrameShape = QFrame.Shape.NoFrame;
     this.mucTree.Animated = true;
     this.mucTree.HeaderHidden = true;
     verticalLayout_3.AddWidget(this.mucTree);
     this.friendsMucsHeader = new QFrame(this.chatroomsTab);
     this.friendsMucsHeader.ObjectName = "friendsMucsHeader";
     this.friendsMucsHeader.FrameShape = QFrame.Shape.NoFrame;
     this.friendsMucsHeader.FrameShadow = QFrame.Shadow.Raised;
     QHBoxLayout horizontalLayout_8;
     horizontalLayout_8 = new QHBoxLayout(this.friendsMucsHeader);
     horizontalLayout_8.Spacing = 3;
     horizontalLayout_8.Margin = 3;
     this.label_3 = new QLabel(this.friendsMucsHeader);
     this.label_3.ObjectName = "label_3";
     this.label_3.Text = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\np, li { white-space: pre-wrap; }\n</style></head><body style=\" font-family:'Bitstream Vera Sans'; font-size:9pt; font-weight:400; font-style:normal;\">\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'DejaVu Sans';\">Friends' Conferences</p></body></html>";
     horizontalLayout_8.AddWidget(this.label_3);
     verticalLayout_3.AddWidget(this.friendsMucsHeader);
     this.friendsMucTree = new QTreeView(this.chatroomsTab);
     this.friendsMucTree.ObjectName = "friendsMucTree";
     this.friendsMucTree.FrameShape = QFrame.Shape.NoFrame;
     this.friendsMucTree.Animated = true;
     this.friendsMucTree.HeaderHidden = true;
     verticalLayout_3.AddWidget(this.friendsMucTree);
     this.tabWidget.AddTab(this.chatroomsTab, "Conferences");
     this.activityTab = new QWidget(this.tabWidget);
     this.activityTab.ObjectName = "activityTab";
     QVBoxLayout verticalLayout;
     verticalLayout = new QVBoxLayout(this.activityTab);
     verticalLayout.Spacing = 0;
     verticalLayout.sizeConstraint = QLayout.SizeConstraint.SetDefaultConstraint;
     verticalLayout.Margin = 0;
     this.activityHeader = new QFrame(this.activityTab);
     this.activityHeader.ObjectName = "activityHeader";
     QSizePolicy activityHeader_sizePolicy;
     activityHeader_sizePolicy = new QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Minimum);
     activityHeader_sizePolicy.SetVerticalStretch(0);
     activityHeader_sizePolicy.SetHorizontalStretch(0);
     activityHeader_sizePolicy.SetHeightForWidth(this.activityHeader.SizePolicy.HasHeightForWidth());
     this.activityHeader.SizePolicy = activityHeader_sizePolicy;
     this.activityHeader.FrameShape = QFrame.Shape.NoFrame;
     this.activityHeader.FrameShadow = QFrame.Shadow.Raised;
     QHBoxLayout horizontalLayout_9;
     horizontalLayout_9 = new QHBoxLayout(this.activityHeader);
     horizontalLayout_9.Spacing = 3;
     horizontalLayout_9.Margin = 3;
     this.m_ShoutButton = new QPushButton(this.activityHeader);
     this.m_ShoutButton.ObjectName = "m_ShoutButton";
     this.m_ShoutButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.m_ShoutButton.StyleSheet = "";
     this.m_ShoutButton.Text = "Shout!";
     this.m_ShoutButton.Checkable = true;
     this.m_ShoutButton.AutoExclusive = false;
     this.m_ShoutButton.Flat = true;
     horizontalLayout_9.AddWidget(this.m_ShoutButton);
     this.m_PostLinkButton = new QPushButton(this.activityHeader);
     this.m_PostLinkButton.ObjectName = "m_PostLinkButton";
     this.m_PostLinkButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.m_PostLinkButton.Text = "Post Link";
     this.m_PostLinkButton.Checkable = true;
     this.m_PostLinkButton.AutoExclusive = false;
     this.m_PostLinkButton.Flat = true;
     horizontalLayout_9.AddWidget(this.m_PostLinkButton);
     this.m_PostFileButton = new QPushButton(this.activityHeader);
     this.m_PostFileButton.ObjectName = "m_PostFileButton";
     this.m_PostFileButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.m_PostFileButton.Text = "Post File";
     this.m_PostFileButton.Checkable = true;
     this.m_PostFileButton.AutoExclusive = false;
     this.m_PostFileButton.Flat = true;
     horizontalLayout_9.AddWidget(this.m_PostFileButton);
     QSpacerItem horizontalSpacer_2;
     horizontalSpacer_2 = new QSpacerItem(0, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum);
     horizontalLayout_9.AddItem(horizontalSpacer_2);
     this.feedFilterButton = new QPushButton(this.activityHeader);
     this.feedFilterButton.ObjectName = "feedFilterButton";
     this.feedFilterButton.FocusPolicy = Qt.FocusPolicy.TabFocus;
     this.feedFilterButton.Text = "";
     this.feedFilterButton.Flat = true;
     horizontalLayout_9.AddWidget(this.feedFilterButton);
     verticalLayout.AddWidget(this.activityHeader);
     this.shoutContainer = new QWidget(this.activityTab);
     this.shoutContainer.ObjectName = "shoutContainer";
     QVBoxLayout verticalLayout_8;
     verticalLayout_8 = new QVBoxLayout(this.shoutContainer);
     verticalLayout_8.Margin = 6;
     QHBoxLayout horizontalLayout_2;
     horizontalLayout_2 = new QHBoxLayout();
     verticalLayout_8.AddLayout(horizontalLayout_2);
     this.shoutLineEdit = new QLineEdit(this.shoutContainer);
     this.shoutLineEdit.ObjectName = "shoutLineEdit";
     this.shoutLineEdit.MaxLength = 140;
     horizontalLayout_2.AddWidget(this.shoutLineEdit);
     this.shoutCharsLabel = new QLabel(this.shoutContainer);
     this.shoutCharsLabel.ObjectName = "shoutCharsLabel";
     this.shoutCharsLabel.Text = "140";
     horizontalLayout_2.AddWidget(this.shoutCharsLabel);
     this.shoutHandlersBox = new QWidget(this.shoutContainer);
     this.shoutHandlersBox.ObjectName = "shoutHandlersBox";
     QHBoxLayout horizontalLayout_10;
     horizontalLayout_10 = new QHBoxLayout(this.shoutHandlersBox);
     horizontalLayout_10.Margin = 0;
     this.label_8 = new QLabel(this.shoutHandlersBox);
     this.label_8.ObjectName = "label_8";
     this.label_8.Text = "Also Send To:";
     horizontalLayout_10.AddWidget(this.label_8);
     this.shoutHandlersContainer = new QWidget(this.shoutHandlersBox);
     this.shoutHandlersContainer.ObjectName = "shoutHandlersContainer";
     QHBoxLayout horizontalLayout_11;
     horizontalLayout_11 = new QHBoxLayout(this.shoutHandlersContainer);
     horizontalLayout_11.Spacing = 3;
     horizontalLayout_11.Margin = 0;
     horizontalLayout_10.AddWidget(this.shoutHandlersContainer);
     QSpacerItem horizontalSpacer_4;
     horizontalSpacer_4 = new QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum);
     horizontalLayout_10.AddItem(horizontalSpacer_4);
     verticalLayout_8.AddWidget(this.shoutHandlersBox);
     QHBoxLayout horizontalLayout_3;
     horizontalLayout_3 = new QHBoxLayout();
     verticalLayout_8.AddLayout(horizontalLayout_3);
     QSpacerItem horizontalSpacer;
     horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum);
     horizontalLayout_3.AddItem(horizontalSpacer);
     this.sendShoutButton = new QPushButton(this.shoutContainer);
     this.sendShoutButton.ObjectName = "sendShoutButton";
     this.sendShoutButton.Text = "Shout!";
     horizontalLayout_3.AddWidget(this.sendShoutButton);
     verticalLayout.AddWidget(this.shoutContainer);
     this.m_ActivityWebView = new QWebView(this.activityTab);
     this.m_ActivityWebView.ObjectName = "m_ActivityWebView";
     QSizePolicy m_ActivityWebView_sizePolicy;
     m_ActivityWebView_sizePolicy = new QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding);
     m_ActivityWebView_sizePolicy.SetVerticalStretch(0);
     m_ActivityWebView_sizePolicy.SetHorizontalStretch(0);
     m_ActivityWebView_sizePolicy.SetHeightForWidth(this.m_ActivityWebView.SizePolicy.HasHeightForWidth());
     this.m_ActivityWebView.SizePolicy = m_ActivityWebView_sizePolicy;
     this.m_ActivityWebView.Url = new QUrl("about:blank");
     verticalLayout.AddWidget(this.m_ActivityWebView);
     this.tabWidget.AddTab(this.activityTab, "Activity");
     this.splitter.AddWidget(this.widget);
     QObject.Connect(m_ShoutButton, Qt.SIGNAL("toggled(bool)"), shoutContainer, Qt.SLOT("setShown(bool)"));
     QObject.Connect(mucRoomLineEdit, Qt.SIGNAL("returnPressed()"), m_JoinChatButton, Qt.SLOT("click()"));
     QObject.Connect(mucPasswordLineEdit, Qt.SIGNAL("returnPressed()"), m_JoinChatButton, Qt.SLOT("click()"));
     QObject.Connect(mucServerLineEdit, Qt.SIGNAL("returnPressed()"), m_JoinChatButton, Qt.SLOT("click()"));
     QObject.Connect(mucNicknameLineEdit, Qt.SIGNAL("returnPressed()"), m_JoinChatButton, Qt.SLOT("click()"));
     QMetaObject.ConnectSlotsByName(this);
     this.label_2.SetBuddy(mucRoomLineEdit);
     this.label_5.SetBuddy(mucServerLineEdit);
     this.label_6.SetBuddy(mucNicknameLineEdit);
     this.label.SetBuddy(mucPasswordLineEdit);
 }
Esempio n. 4
0
        public TabbedChatsWindow()
        {
            // FIXME: This doesn't work very well in most themes...
            //this.SetStyleSheet("QTabWidget::pane { border: 0px; }");

            // The tab widget messes up this background color.
            this.SetStyleSheet("QTabWidget > QWidget { background: palette(window); }");

            m_Tabs = new QTabWidget();
            m_Tabs.tabPosition = QTabWidget.TabPosition.South;

            QToolButton newTabButton = new QToolButton(m_Tabs);
            newTabButton.AutoRaise = true;
            newTabButton.SetDefaultAction(new QAction(Gui.LoadIcon("tab-new", 16), "New Tab", newTabButton));
            newTabButton.SetToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly);
            QObject.Connect<QAction>(newTabButton, Qt.SIGNAL("triggered(QAction*)"), HandleNewTab);
            m_Tabs.SetCornerWidget(newTabButton, Qt.Corner.BottomLeftCorner);

            QHBoxLayout rightButtonsLayout = new QHBoxLayout();
            rightButtonsLayout.SetContentsMargins(0, 0, 0, 0);
            rightButtonsLayout.Spacing = 0;

            QToolButton closeTabButton = new QToolButton(m_Tabs);
            closeTabButton.SetToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly);
            closeTabButton.AutoRaise = true;
            closeTabButton.SetDefaultAction(new QAction(Gui.LoadIcon("window-close", 16), "Close Tab", closeTabButton));
            QObject.Connect<QAction>(closeTabButton, Qt.SIGNAL("triggered(QAction*)"), HandleCloseTab);
            rightButtonsLayout.AddWidget(closeTabButton);

            QMenu menu = new QMenu(this);
            menu.AddAction(new QIcon(), "No Recently Closed Tabs");

            QToolButton trashButton = new QToolButton(m_Tabs);
            trashButton.SetToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly);
            trashButton.AutoRaise = true;
            trashButton.PopupMode = QToolButton.ToolButtonPopupMode.InstantPopup;
            trashButton.SetMenu(menu);
            trashButton.SetDefaultAction(new QAction(Gui.LoadIcon("user-trash", 16), "Recently Closed Tabs", trashButton));
            rightButtonsLayout.AddWidget(trashButton);

            // FIXME: This looks bad.
            //rightButtonsLayout.AddWidget(new QSizeGrip(this));

            QWidget rightButtonsContainer = new QWidget(m_Tabs);
            rightButtonsContainer.SetLayout(rightButtonsLayout);
            m_Tabs.SetCornerWidget(rightButtonsContainer, Qt.Corner.BottomRightCorner);

            QVBoxLayout layout = new QVBoxLayout(this);
            layout.SetContentsMargins(0, 0, 0, 0);
            layout.AddWidget(m_Tabs, 1, 0);
            this.SetLayout(layout);

            QObject.Connect<int>(m_Tabs, Qt.SIGNAL("currentChanged(int)"), HandleCurrentChanged);

            this.SetGeometry(0, 0, 445, 370);
            Gui.CenterWidgetOnScreen(this);

            QAction closeAction = new QAction(this);
            QObject.Connect<bool>(closeAction, Qt.SIGNAL("triggered(bool)"), HandleCloseActionTriggered);
            closeAction.Shortcut = new QKeySequence("Ctrl+w");
            this.AddAction(closeAction);

            0.UpTo(9).ForEach(num => {
                QAction action = new QAction(this);
                action.Shortcut = new QKeySequence("Alt+" + num.ToString());
                QObject.Connect(action, Qt.SIGNAL("triggered(bool)"), delegate {
                    m_Tabs.CurrentIndex = num - 1;
                });
                this.AddAction(action);
            });

            QAction nextTabAction = new QAction(this);
            nextTabAction.Shortcut = new QKeySequence(QKeySequence.StandardKey.NextChild);
            QObject.Connect(nextTabAction, Qt.SIGNAL("triggered(bool)"), delegate {
                if (m_Tabs.CurrentIndex == m_Tabs.Count - 1)
                    m_Tabs.CurrentIndex = 0;
                else
                    m_Tabs.CurrentIndex += 1;
            });
            this.AddAction(nextTabAction);

            QAction prevTabAction = new QAction(this);
            prevTabAction.Shortcut = new QKeySequence(QKeySequence.StandardKey.PreviousChild);
            QObject.Connect(prevTabAction, Qt.SIGNAL("triggered(bool)"), delegate {
                if (m_Tabs.CurrentIndex == 0)
                    m_Tabs.CurrentIndex = m_Tabs.Count - 1;
                else
                    m_Tabs.CurrentIndex -= 1;
            });

            var accountService = ServiceManager.Get<AccountService>();
            accountService.AccountAdded += HandleAccountAdded;
            accountService.AccountRemoved += HandleAccountRemoved;
            foreach (Account account in accountService.Accounts)
                HandleAccountAdded(account);

            var settingsService = ServiceManager.Get<SettingsService>();
            if (settingsService.Has("ChatsWindowGeometry")) {
                var geometry = settingsService.Get<byte[]>("ChatsWindowGeometry");
                base.RestoreGeometry(QByteArrayConverter.FromArray(geometry));
            }
        }