| 219 | } |
| 220 | |
| 221 | void MultiGradientSelector::contextMenuEvent(QContextMenuEvent * e) |
| 222 | { |
| 223 | QMenu main_menu(this); |
| 224 | //Default gradient |
| 225 | QMenu * defaults = main_menu.addMenu("Default gradients"); |
| 226 | defaults->addAction("grey - yellow - red - purple - blue - black"); |
| 227 | defaults->addAction("grey - black"); |
| 228 | defaults->addAction("yellow - red - purple - blue - black"); |
| 229 | defaults->addAction("orange - red - purple - blue - black"); |
| 230 | defaults->addAction("yellow - orange - red"); |
| 231 | defaults->addSeparator(); |
| 232 | defaults->addAction("black"); |
| 233 | defaults->addAction("white"); |
| 234 | defaults->addAction("red"); |
| 235 | defaults->addAction("green"); |
| 236 | defaults->addAction("blue"); |
| 237 | defaults->addAction("magenta"); |
| 238 | defaults->addAction("turquoise"); |
| 239 | defaults->addAction("yellow"); |
| 240 | |
| 241 | //Interploate/Stairs |
| 242 | QMenu * inter = main_menu.addMenu("Interpolation"); |
| 243 | QAction * current = inter->addAction("None"); |
| 244 | if (gradient_.getInterpolationMode() == MultiGradient::IM_STAIRS) |
| 245 | current->setEnabled(false); |
| 246 | current = inter->addAction("Linear"); |
| 247 | if (gradient_.getInterpolationMode() == MultiGradient::IM_LINEAR) |
| 248 | current->setEnabled(false); |
| 249 | |
| 250 | //Execute |
| 251 | QAction * result; |
| 252 | if ((result = main_menu.exec(e->globalPos()))) |
| 253 | { |
| 254 | if (result->text() == "grey - yellow - red - purple - blue - black") |
| 255 | { |
| 256 | gradient_ = MultiGradient::getDefaultGradientLinearIntensityMode(); |
| 257 | } |
| 258 | if (result->text() == "grey - black") |
| 259 | { |
| 260 | gradient_ = MultiGradient::getDefaultGradientLogarithmicIntensityMode(); |
| 261 | } |
| 262 | else if (result->text() == "yellow - red - purple - blue - black") |
| 263 | { |
| 264 | gradient_.fromString("Linear|0,#ffea00;6,#ff0000;14,#aa00ff;23,#5500ff;100,#000000"); |
| 265 | } |
| 266 | else if (result->text() == "orange - red - purple - blue - black") |
| 267 | { |
| 268 | gradient_.fromString("Linear|0,#ffaa00;6,#ff0000;14,#aa00ff;23,#5500ff;100,#000000"); |
| 269 | } |
| 270 | else if (result->text() == "yellow - orange - red") |
| 271 | { |
| 272 | gradient_.fromString("Linear|0,#ffea00;6,#ffaa00;100,#ff0000"); |
| 273 | } |
| 274 | else if (result->text() == "black") |
| 275 | { |
| 276 | gradient_.fromString("Linear|0,#000000;100,#000000"); |
| 277 | } |
| 278 | else if (result->text() == "white") |
nothing calls this directly
no test coverage detected