Author: mir3x Date: Sun Aug 28 20:03:37 2016 New Revision: 33721 URL: http://svn.gna.org/viewcvs/freeciv?rev=33721&view=rev Log: Qt client - Use QStackedLayout as main layout
See patch #7656 Modified: trunk/client/gui-qt/fc_client.cpp trunk/client/gui-qt/fc_client.h Modified: trunk/client/gui-qt/fc_client.cpp URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/fc_client.cpp?rev=33721&r1=33720&r2=33721&view=diff ============================================================================== --- trunk/client/gui-qt/fc_client.cpp (original) +++ trunk/client/gui-qt/fc_client.cpp Sun Aug 28 20:03:37 2016 @@ -21,6 +21,7 @@ #include <QMainWindow> #include <QLineEdit> #include <QScrollBar> +#include <QStackedLayout> #include <QStatusBar> #include <QTabBar> #include <QTextEdit> @@ -113,8 +114,7 @@ { QString path; central_wdg = new QWidget; - central_layout = new QGridLayout; - central_layout->setContentsMargins(2, 2, 2, 2); + central_layout = new QStackedLayout; // General part not related to any single page fc_fonts.init_fonts(); @@ -163,14 +163,23 @@ pages[PAGE_GAME] = new QWidget(central_wdg); init_mapcanvas_and_overview(); create_game_page(); - pages[PAGE_GAME]->setVisible(false); - - central_layout->addLayout(pages_layout[PAGE_MAIN], 1, 1); - central_layout->addLayout(pages_layout[PAGE_NETWORK], 1, 1); - central_layout->addLayout(pages_layout[PAGE_LOAD], 1, 1); - central_layout->addLayout(pages_layout[PAGE_SCENARIO], 1, 1); - central_layout->addLayout(pages_layout[PAGE_START], 1, 1); - central_layout->addLayout(pages_layout[PAGE_GAME], 1, 1); + + pages_layout[PAGE_GAME]->setContentsMargins(0, 0, 0, 0); + + pages[PAGE_MAIN]->setLayout(pages_layout[PAGE_MAIN]); + pages[PAGE_NETWORK]->setLayout(pages_layout[PAGE_NETWORK]); + pages[PAGE_LOAD]->setLayout(pages_layout[PAGE_LOAD]); + pages[PAGE_SCENARIO]->setLayout(pages_layout[PAGE_SCENARIO]); + pages[PAGE_START]->setLayout(pages_layout[PAGE_START]); + pages[PAGE_GAME]->setLayout(pages_layout[PAGE_GAME]); + + central_layout->addWidget(pages[PAGE_MAIN]); + central_layout->addWidget(pages[PAGE_NETWORK]); + central_layout->addWidget(pages[PAGE_LOAD]); + central_layout->addWidget(pages[PAGE_SCENARIO]); + central_layout->addWidget(pages[PAGE_START]); + central_layout->addWidget(pages[PAGE_GAME]); + central_wdg->setLayout(central_layout); setCentralWidget(central_wdg); @@ -285,13 +294,7 @@ status_bar->setVisible(true); } - for (int i = 0; i <= PAGE_GAME; i++) { - if (i == new_page) { - show_children(pages_layout[i], true); - } else { - show_children(pages_layout[i], false); - } - } + central_layout->setCurrentWidget(pages[new_pg]); page = new_page; switch (page) { case PAGE_MAIN: @@ -480,29 +483,6 @@ } } -/**************************************************************************** - Shows all widgets for given layout -****************************************************************************/ -void fc_client::show_children(const QLayout* layout, bool show) -{ - QLayoutItem *item = NULL; - QWidget *widget = NULL; - - if (layout) { - for (int i = 0; i < layout->count(); i++) { - item = layout->itemAt(i); - widget = item ? item->widget() : 0; - - if (widget) { - widget->setVisible(show); - } - - if (item->layout()) { - show_children(item->layout(), show); - } - } - } -} /**************************************************************************** Finds not used index on game_view_tab and returns it Modified: trunk/client/gui-qt/fc_client.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/fc_client.h?rev=33721&r1=33720&r2=33721&view=diff ============================================================================== --- trunk/client/gui-qt/fc_client.h (original) +++ trunk/client/gui-qt/fc_client.h Sun Aug 28 20:03:37 2016 @@ -60,23 +60,24 @@ WAITING_TYPE }; +class fc_sidebar; +class fc_sidetax; +class fc_sidewidget; class MainWindow; +class pregame_options; +class QApplication; +class QDialog; class QLabel; class QLineEdit; +class QMainWindow; +class QSocketNotifier; +class QStackedLayout; +class QStatusBar; class QString; class QTableWidget; class QTextEdit; class QTimer; -class QSocketNotifier; -class QDialog; -class QApplication; class QTreeWidget; -class QStatusBar; -class QMainWindow; -class fc_sidebar; -class fc_sidewidget; -class fc_sidetax; -class pregame_options; /**************************************************************************** @@ -165,8 +166,8 @@ QWidget *connect_metaserver; QWidget *game_main_widget; - QGridLayout *central_layout; QGridLayout *pages_layout[PAGE_GAME + 1]; + QStackedLayout *central_layout; QTextEdit *output_window; QTextEdit *scenarios_view; @@ -314,7 +315,6 @@ void create_start_page(); void create_game_page(); bool chat_active_on_page(enum client_pages); - void show_children(const QLayout *layout, bool show); void destroy_server_scans (void); void update_server_list(enum server_scan_type sstype, const struct server_list *list); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits