QStandardItem *CurrentJobColumn::build_cell(Dwarf *d) { QStandardItem *item = init_cell(d); short job_id = d->current_job_id(); QString pixmap_name(":img/question-frame.png"); DwarfJob *job = GameDataReader::ptr()->get_job(job_id); if (job) { int pref_id = -1; if(!job->reactionClass.isEmpty() && !d->current_sub_job_id().isEmpty()) { Reaction* reaction = d->get_reaction(); if(reaction!=0) { //job_type = DwarfJob::get_type(reaction->skill()); pref_id = GameDataReader::ptr()->get_pref_from_skill(reaction->skill_id()); } } if(pref_id != -1) { pixmap_name = ":/profession/img/profession icons/prof_" + QString::number(pref_id+1) + ".png"; //offset for the image name item->setData(QColor(50,50,50), DwarfModel::DR_DEFAULT_BG_COLOR); //shade the background } else { DwarfJob::DWARF_JOB_TYPE job_type = job->type; TRACE << "Dwarf: " << d->nice_name() << " job -" << job_id << ": (" << job->description << "," << job_type << ")"; switch (job_type) { case DwarfJob::DJT_IDLE: pixmap_name = ":status/img/cross-small.png"; break; case DwarfJob::DJT_ON_BREAK: pixmap_name = ":status/img/hourglass.png"; break; case DwarfJob::DJT_SOLDIER: pixmap_name = ":status/img/exclamation-shield-frame.png"; break; case DwarfJob::DJT_DIG: pixmap_name = ":status/img/shovel.png"; break; case DwarfJob::DJT_CUT: pixmap_name = ":status/img/tree--minus.png"; break; case DwarfJob::DJT_SLEEP: pixmap_name = ":status/img/moon.png"; break; case DwarfJob::DJT_DRINK: pixmap_name = ":status/img/ale.png"; break; case DwarfJob::DJT_FOOD: pixmap_name = ":status/img/cutlery.png"; break; case DwarfJob::DJT_BUILD: pixmap_name = ":status/img/hammer--plain.png"; break; case DwarfJob::DJT_HAUL: pixmap_name = ":status/img/cart-box.png"; break; case DwarfJob::DJT_FIGHT: pixmap_name = ":status/img/crossed-swords.png"; break; case DwarfJob::DJT_MOOD: pixmap_name = ":img/exclamation-red-frame.png"; break; case DwarfJob::DJT_FORGE: pixmap_name = ":status/img/status_forge.png"; break; case DwarfJob::DJT_MEDICAL: pixmap_name = ":status/img/first_aid_kit.png"; break; case DwarfJob::DJT_WAX_WORKING: pixmap_name = ":status/img/lump.png"; break; case DwarfJob::DJT_POTTERY: pixmap_name = ":status/img/pot.png"; break; case DwarfJob::DJT_PRESSING: pixmap_name = ":status/img/cup2.png"; break; case DwarfJob::DJT_SPINNING: pixmap_name = ":status/img/spinning.png"; break; case DwarfJob::DJT_BEE_KEEPING: pixmap_name = ":status/img/bee_i_guess.png"; break; case DwarfJob::DJT_STAIRS: pixmap_name = ":status/img/stairs.png"; break; case DwarfJob::DJT_FORTIFICATION: pixmap_name = ":status/img/wall-brick.png"; break; case DwarfJob::DJT_ENGRAVE: pixmap_name = ":status/img/paint-brush.png"; break; case DwarfJob::DJT_LEAF: pixmap_name = ":status/img/leaf.png"; break; case DwarfJob::DJT_BUILD_REMOVE: pixmap_name = ":status/img/hammer--minus.png"; break; case DwarfJob::DJT_BAG_ADD: pixmap_name = ":status/img/paper-bag--plus.png"; break; case DwarfJob::DJT_MONEY: pixmap_name = ":status/img/money-coin.png"; break; case DwarfJob::DJT_TAX: pixmap_name = ":status/img/money--arrow.png"; break; case DwarfJob::DJT_RETURN: pixmap_name = ":status/img/arrow-return.png"; break; case DwarfJob::DJT_PARTY: pixmap_name = ":status/img/rubber-balloons.png"; break; case DwarfJob::DJT_SOAP: pixmap_name = ":status/img/soap.png"; break; case DwarfJob::DJT_SEEK: pixmap_name = ":status/img/eye--arrow.png"; break; case DwarfJob::DJT_GEM_CUT: pixmap_name = ":status/img/diamond.png"; break; case DwarfJob::DJT_GEM_ENCRUST: pixmap_name = ":status/img/ruby.png"; break; case DwarfJob::DJT_SEEDS: pixmap_name = ":status/img/beans.png"; break; case DwarfJob::DJT_LEAF_ARROW: pixmap_name = ":status/img/leaf--arrow.png"; break; case DwarfJob::DJT_WATER_ARROW: pixmap_name = ":status/img/water--arrow.png"; break; case DwarfJob::DJT_TOMBSTONE: pixmap_name = ":status/img/headstone-rip.png"; break; case DwarfJob::DJT_ANIMAL: pixmap_name = ":status/img/animal.png"; break; case DwarfJob::DJT_BOOK_OPEN: pixmap_name = ":status/img/book-open-list.png"; break; case DwarfJob::DJT_HANDSHAKE: pixmap_name = ":status/img/hand-shake.png"; break; case DwarfJob::DJT_CONSTRUCT: pixmap_name = ":status/img/hammer-screwdriver.png"; break; case DwarfJob::DJT_ABACUS: pixmap_name = ":status/img/abacus.png"; break; case DwarfJob::DJT_FURNACE: pixmap_name = ":status/img/fire.png"; break; case DwarfJob::DJT_REPORT: pixmap_name = ":status/img/balloon-prohibition.png"; break; case DwarfJob::DJT_JUSTICE: pixmap_name = ":status/img/balance.png"; break; case DwarfJob::DJT_SHIELD: pixmap_name = ":status/img/shield.png"; break; case DwarfJob::DJT_DEPOT: pixmap_name = ":status/img/wooden-box--arrow.png"; break; case DwarfJob::DJT_BROOM: pixmap_name = ":status/img/broom.png"; break; case DwarfJob::DJT_SWITCH: pixmap_name = ":status/img/switch.png"; break; case DwarfJob::DJT_CHAIN: pixmap_name = ":status/img/chain.png"; break; case DwarfJob::DJT_UNCHAIN: pixmap_name = ":status/img/chain-unchain.png"; break; case DwarfJob::DJT_FILL_WATER: pixmap_name = ":status/img/water--plus.png"; break; case DwarfJob::DJT_MARKET: pixmap_name = ":status/img/store-market-stall.png"; break; case DwarfJob::DJT_KNIFE: pixmap_name = ":status/img/knife_bloody.png"; break; case DwarfJob::DJT_BOW: pixmap_name = ":status/img/bow.png"; break; case DwarfJob::DJT_CHEESE: pixmap_name = ":status/img/cheese.png"; break; case DwarfJob::DJT_HELM: pixmap_name = ":status/img/helm.png"; break; case DwarfJob::DJT_GLOVE: pixmap_name = ":status/img/glove.png"; break; case DwarfJob::DJT_BOOT: pixmap_name = ":status/img/boot.png"; break; case DwarfJob::DJT_ARMOR: pixmap_name = ":status/img/armor.png"; break; case DwarfJob::DJT_FISH: pixmap_name = ":status/img/carp.png"; break; case DwarfJob::DJT_RAW_FISH: pixmap_name = ":status/img/fish.png"; break; case DwarfJob::DJT_MILK: pixmap_name = ":status/img/milk.png"; break; case DwarfJob::DJT_REST: pixmap_name = ":status/img/bandaid--exclamation.png"; break; case DwarfJob::DJT_COOKING: pixmap_name = ":status/img/meat.png"; break; case DwarfJob::DJT_BUCKET_POUR: pixmap_name = ":status/img/paint-can--arrow.png"; break; case DwarfJob::DJT_GIVE_LOVE: pixmap_name = ":status/img/heart--arrow.png"; break; case DwarfJob::DJT_DYE: pixmap_name = ":status/img/color--plus.png"; break; case DwarfJob::DJT_WEAPON: pixmap_name = ":status/img/weapon.png"; break; case DwarfJob::DJT_SWITCH_CONNECT: pixmap_name = ":status/img/switch-network.png"; break; case DwarfJob::DJT_ZONE_ADD: pixmap_name = ":status/img/zone--plus.png"; break; case DwarfJob::DJT_CRAFTS: pixmap_name = ":status/img/crown.png"; break; case DwarfJob::DJT_GEAR: pixmap_name = ":status/img/gear-small.png"; break; case DwarfJob::DJT_TROUBLE: pixmap_name = ":status/img/hand-finger.png"; break; case DwarfJob::DJT_STORAGE: pixmap_name = ":status/img/box--plus.png"; break; case DwarfJob::DJT_STORE_OWNED: pixmap_name = ":status/img/safe--plus.png"; break; case DwarfJob::DJT_CABINET_MAKE: pixmap_name = ":status/img/drawer--plus.png"; break; case DwarfJob::DJT_CABINET_STORE: pixmap_name = ":status/img/drawer-open.png"; break; case DwarfJob::DJT_DOOR_MAKE: pixmap_name = ":status/img/door--plus.png"; break; case DwarfJob::DJT_CHAIR_MAKE: pixmap_name = ":status/img/chair--plus.png"; break; case DwarfJob::DJT_BREW: pixmap_name = ":status/img/ale--plus.png"; break; default: case DwarfJob::DJT_DEFAULT: pixmap_name = ":status/img/control_play_blue.png"; break; } } } item->setData(QIcon(pixmap_name), Qt::DecorationRole); item->setData(CT_IDLE, DwarfModel::DR_COL_TYPE); item->setData(d->current_job_id(), DwarfModel::DR_SORT_VALUE); // QColor bg = QColor(175,175,175); // if(DT->user_settings()->value("options/grid/shade_cells",true)==false) // bg = QColor(255,255,255); // item->setData(bg,Qt::BackgroundColorRole); QString tooltip = QString("<center><h3>%1</h3>%2 (%3)%4</center>") .arg(m_title) .arg(d->current_job()) .arg(d->current_job_id()) .arg(tooltip_name_footer(d)); item->setToolTip(tooltip); return item; }