Author: mir3x Date: Sun Nov 20 23:15:35 2016 New Revision: 34590 URL: http://svn.gna.org/viewcvs/freeciv?rev=34590&view=rev Log: Qt client - allow chaning tech via sidebar menu
See patch #8002 Modified: trunk/client/gui-qt/pages.cpp trunk/client/gui-qt/sidebar.cpp trunk/client/gui-qt/sidebar.h Modified: trunk/client/gui-qt/pages.cpp URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/pages.cpp?rev=34590&r1=34589&r2=34590&view=diff ============================================================================== --- trunk/client/gui-qt/pages.cpp (original) +++ trunk/client/gui-qt/pages.cpp Sun Nov 20 23:15:35 2016 @@ -728,6 +728,7 @@ sw_cunit->set_wheel_up(cycle_enemy_units); sw_cunit->set_wheel_down(key_unit_wait); sw_diplo->set_right_click(side_right_click_diplomacy); + sw_science->set_right_click(side_right_click_science); sidebar_wdg->add_widget(sw_map); sidebar_wdg->add_widget(sw_cunit); Modified: trunk/client/gui-qt/sidebar.cpp URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/sidebar.cpp?rev=34590&r1=34589&r2=34590&view=diff ============================================================================== --- trunk/client/gui-qt/sidebar.cpp (original) +++ trunk/client/gui-qt/sidebar.cpp Sun Nov 20 23:15:35 2016 @@ -22,7 +22,11 @@ #include <QPixmap> #include <QTimer> +//common +#include "research.h" + // qt-client +#include "repodlgs.h" #include "sidebar.h" #include "sprite.h" @@ -306,7 +310,7 @@ } /*************************************************************************** - Miscelanous slot, helping observe players currently, + Miscelanous slot, helping observe players currently, and changing science extra functionality might be added, eg by setting properties ***************************************************************************/ @@ -320,6 +324,11 @@ qvar = act->data(); if (qvar.isValid() == false) { + return; + } + + if (act->property("scimenu") == true) { + dsend_packet_player_research(&client.conn, qvar.toInt()); return; } @@ -682,3 +691,45 @@ gui()->game_tab_widget->setCurrentIndex(i); } } + +/*************************************************************************** + Right click for science, allowing to choose current tech +***************************************************************************/ +void side_right_click_science(void) +{ + QMenu *menu; + QString str; + QAction *act; + QVariant qvar; + QList<qlist_item> curr_list; + qlist_item item; + + if (client_is_observer() == false) { + struct research *research = research_get(client_player()); + + advance_index_iterate(A_FIRST, i) { + if (TECH_PREREQS_KNOWN == research->inventions[i].state + && research->researching != i) { + item.tech_str = + QString::fromUtf8(advance_name_translation(advance_by_number(i))); + item.id = i; + curr_list.append(item); + } + } advance_index_iterate_end; + if (curr_list.isEmpty()) { + return; + } + qSort(curr_list.begin(), curr_list.end(), comp_less_than); + menu = new QMenu(gui()->central_wdg); + for (int i = 0; i < curr_list.count(); i++) { + qvar = curr_list.at(i).id; + act = new QAction(curr_list.at(i).tech_str, gui()->mapview_wdg); + act->setData(qvar); + act->setProperty("scimenu", true); + menu->addAction(act); + QObject::connect(act, SIGNAL(triggered()), gui()->sw_science, + SLOT(some_slot())); + } + menu->exec(QCursor::pos()); + } +} Modified: trunk/client/gui-qt/sidebar.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-qt/sidebar.h?rev=34590&r1=34589&r2=34590&view=diff ============================================================================== --- trunk/client/gui-qt/sidebar.h (original) +++ trunk/client/gui-qt/sidebar.h Sun Nov 20 23:15:35 2016 @@ -33,6 +33,7 @@ typedef void (*pfcn)(void); void side_right_click_diplomacy(void); +void side_right_click_science(void); void side_blink_endturn(bool do_restore); void side_center_unit(); void side_disable_endturn(bool do_restore); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits