Author: mir3x Date: Wed Dec 2 13:02:22 2015 New Revision: 30830 URL: http://svn.gna.org/viewcvs/freeciv?rev=30830&view=rev Log: Default width of chat/messagess has been set to 95% of mapview minus width of end turn area. Size is scalable during resizes. And width and height in percent are written to settings file, so they will be restored at next restart. Reported by Jacob Nevins <jtn>
See bug #24107 Modified: branches/S2_6/client/gui-qt/fc_client.cpp branches/S2_6/client/gui-qt/fc_client.h branches/S2_6/client/gui-qt/gui_main.cpp branches/S2_6/client/gui-qt/mapview.cpp branches/S2_6/client/gui-qt/messagewin.cpp Modified: branches/S2_6/client/gui-qt/fc_client.cpp URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-qt/fc_client.cpp?rev=30830&r1=30829&r2=30830&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/fc_client.cpp (original) +++ branches/S2_6/client/gui-qt/fc_client.cpp Wed Dec 2 13:02:22 2015 @@ -151,6 +151,9 @@ pages[PAGE_NETWORK]->setVisible(false); // PAGE_GAME + QSettings::setPath(QSettings::NativeFormat, QSettings::UserScope, + "$HOME/.config"); + read_settings(); pages[PAGE_GAME] = new QWidget(central_wdg); init_mapcanvas_and_overview(); create_game_page(); @@ -552,6 +555,36 @@ } /**************************************************************************** + Loads qt-specific options +****************************************************************************/ +void fc_client::read_settings() +{ + QSettings s(QSettings::IniFormat, QSettings::UserScope, + "freeciv-qt-client"); + if (s.contains("InfoTab-xsize")) { + qt_settings.infotab_width = s.value("InfoTab-xsize").toInt(); + } else { + qt_settings.infotab_width = 95; + } + if (s.contains("InfoTab-ysize")) { + qt_settings.infotab_height = s.value("InfoTab-ysize").toInt(); + } else { + qt_settings.infotab_height = 29; + } +} + +/**************************************************************************** + Save qt-specific options +****************************************************************************/ +void fc_client::write_settings() +{ + QSettings s(QSettings::IniFormat, QSettings::UserScope, + "freeciv-qt-client"); + s.setValue("InfoTab-xsize", qt_settings.infotab_width); + s.setValue("InfoTab-ysize", qt_settings.infotab_height); +} + +/**************************************************************************** Updates autocompleter for chat widgets ****************************************************************************/ void fc_client::update_completer() Modified: branches/S2_6/client/gui-qt/fc_client.h URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-qt/fc_client.h?rev=30830&r1=30829&r2=30830&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/fc_client.h (original) +++ branches/S2_6/client/gui-qt/fc_client.h Wed Dec 2 13:02:22 2015 @@ -118,6 +118,15 @@ QFont* get_font(QString name); void init_fonts(); void release_fonts(); +}; + +/**************************************************************************** + Some qt-specific options like size to save between restarts +****************************************************************************/ +struct fc_settings +{ + int infotab_width; /* in percent */ + int infotab_height; /* in percent */ }; class fc_client : public QMainWindow @@ -216,10 +225,12 @@ goto_dialog *gtd; QCursor *fc_cursors[CURSOR_LAST][NUM_CURSOR_FRAMES]; pregame_options *pr_options; + fc_settings qt_settings; void gimme_place(QWidget* widget, QString str); int gimme_index_of(QString str); void remove_repo_dlg(QString str); bool is_repo_dlg_open(QString str); + void write_settings(); bool is_closing(); private slots: @@ -274,6 +285,7 @@ void set_connection_state(enum connection_state state); void update_buttons(); void init(); + void read_settings(); enum client_pages page; QMap<QString, QWidget*> opened_repo_dlgs; Modified: branches/S2_6/client/gui-qt/gui_main.cpp URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-qt/gui_main.cpp?rev=30830&r1=30829&r2=30830&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/gui_main.cpp (original) +++ branches/S2_6/client/gui-qt/gui_main.cpp Wed Dec 2 13:02:22 2015 @@ -437,6 +437,7 @@ return; break; case QMessageBox::Ok: + gui()->write_settings(); qapp->quit(); break; } Modified: branches/S2_6/client/gui-qt/mapview.cpp URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-qt/mapview.cpp?rev=30830&r1=30829&r2=30830&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/mapview.cpp (original) +++ branches/S2_6/client/gui-qt/mapview.cpp Wed Dec 2 13:02:22 2015 @@ -285,10 +285,13 @@ QSize delta; size = event->size(); - if (C_S_RUNNING <= client_state()) { map_canvas_resized(size.width(), size.height()); - gui()->infotab->resize(size.width() / 2, size.height() / 3); + gui()->infotab->resize(((size.width() + - gui()->end_turn_rect->sizeHint().width()) + * gui()->qt_settings.infotab_width) / 100, + (size.height() + * gui()->qt_settings.infotab_height) / 100); gui()->infotab->move(0 , size.height() - gui()->infotab->height()); gui()->unitinfo_wdg->move(width() - gui()->unitinfo_wdg->width(), 0); delta = size - gui()->end_turn_rect->sizeHint(); Modified: branches/S2_6/client/gui-qt/messagewin.cpp URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/client/gui-qt/messagewin.cpp?rev=30830&r1=30829&r2=30830&view=diff ============================================================================== --- branches/S2_6/client/gui-qt/messagewin.cpp (original) +++ branches/S2_6/client/gui-qt/messagewin.cpp Wed Dec 2 13:02:22 2015 @@ -125,6 +125,9 @@ resx = false; resy = false; setCursor(Qt::ArrowCursor); + gui()->qt_settings.infotab_width = width() * 100 / (mapview.width + - gui()->end_turn_rect->width()); + gui()->qt_settings.infotab_height = height() * 100 / mapview.height; } } _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits