//Copyright 2017 Ryan Wick //This file is part of Bandage //Bandage is free software: you can redistribute it and/or modify //it under the terms of the GNU General Public License as published by //the Free Software Foundation, either version 3 of the License, or //(at your option) any later version. //Bandage is distributed in the hope that it will be useful, //but WITHOUT ANY WARRANTY; without even the implied warranty of //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //GNU General Public License for more details. //You should have received a copy of the GNU General Public License //along with Bandage. If not, see . #ifndef GLOBALS_H #define GLOBALS_H #include #include #include #include #include class Settings; class Memory; class MyGraphicsView; class BlastSearch; class AssemblyGraph; enum NodeColourScheme {UNIFORM_COLOURS, RANDOM_COLOURS, DEPTH_COLOUR, BLAST_HITS_RAINBOW_COLOUR, BLAST_HITS_SOLID_COLOUR, CONTIGUITY_COLOUR, CUSTOM_COLOURS}; enum GraphScope {WHOLE_GRAPH, AROUND_NODE, AROUND_BLAST_HITS, DEPTH_RANGE}; enum ContiguityStatus {STARTING, CONTIGUOUS_STRAND_SPECIFIC, CONTIGUOUS_EITHER_STRAND, MAYBE_CONTIGUOUS, NOT_CONTIGUOUS}; enum NodeDragging {ONE_PIECE, NEARBY_PIECES, ALL_PIECES, NO_DRAGGING}; enum ZoomSource {MOUSE_WHEEL, SPIN_BOX, KEYBOARD, GESTURE}; enum UiState {NO_GRAPH_LOADED, GRAPH_LOADED, GRAPH_DRAWN}; enum NodeLengthMode {AUTO_NODE_LENGTH, MANUAL_NODE_LENGTH}; enum GraphFileType {LAST_GRAPH, FASTG, GFA, TRINITY, ASQG, PLAIN_FASTA, ANY_FILE_TYPE, UNKNOWN_FILE_TYPE}; enum SequenceType {NUCLEOTIDE, PROTEIN, EITHER_NUCLEOTIDE_OR_PROTEIN}; enum BlastUiState {BLAST_DB_NOT_YET_BUILT, BLAST_DB_BUILD_IN_PROGRESS, BLAST_DB_BUILT_BUT_NO_QUERIES, READY_FOR_BLAST_SEARCH, BLAST_SEARCH_IN_PROGRESS, BLAST_SEARCH_COMPLETE}; enum CommandLineCommand {NO_COMMAND, BANDAGE_LOAD, BANDAGE_INFO, BANDAGE_IMAGE, BANDAGE_DISTANCE, BANDAGE_QUERY_PATHS, BANDAGE_REDUCE}; enum EdgeOverlapType {UNKNOWN_OVERLAP, EXACT_OVERLAP, AUTO_DETERMINED_EXACT_OVERLAP}; enum NodeNameStatus {NODE_NAME_OKAY, NODE_NAME_TAKEN, NODE_NAME_CONTAINS_TAB, NODE_NAME_CONTAINS_NEWLINE, NODE_NAME_CONTAINS_COMMA, NODE_NAME_CONTAINS_SPACE}; enum SequencesLoadedFromFasta {NOT_READY, NOT_TRIED, TRIED}; //Some of the program's common components are made global so they don't have //to be passed around as parameters. extern QSharedPointer g_settings; extern QSharedPointer g_memory; extern MyGraphicsView * g_graphicsView; extern double g_absoluteZoom; extern QSharedPointer g_blastSearch; extern QSharedPointer g_assemblyGraph; //Functions for formatting numbers are used in many places, and are made global. QString formatIntForDisplay(int num); QString formatIntForDisplay(long long num); QString formatDoubleForDisplay(double num, int decimalPlacesToDisplay); QString formatDepthForDisplay(double depth); std::vector getPresetColours(); QString getColourName(QColor colour); #endif // GLOBALS_H