def create_qapplication(app_name = 'Back In Time'): global qapp try: return qapp except NameError: pass qapp = QApplication(sys.argv + ['-title', app_name]) if os.geteuid() == 0 and \ qapp.style().objectName().lower() == 'windows' and \ 'GTK+' in QStyleFactory.keys(): qapp.setStyle('GTK+') return qapp
def create_qapplication(app_name='Back In Time'): global qapp try: return qapp except NameError: pass qapp = QApplication(sys.argv + ['-title', app_name]) if os.geteuid() == 0 and \ qapp.style().objectName().lower() == 'windows' and \ 'GTK+' in QStyleFactory.keys(): qapp.setStyle('GTK+') return qapp
def create_app(arguments): app = QApplication(arguments) p = QPalette() p.setColor(QPalette.Window, QColor("#DDDDDD")) app.setPalette(p) keys = QStyleFactory.keys() # list of themes include: # ['Windows', 'WindowsXP', 'WindowsVista', 'Motif', 'CDE', 'Plastique', 'Cleanlooks'] # i'm using WindowsXP app.setStyle(QStyleFactory.create(keys[1])) # app.setWindowIcon(get_qicon(general_defs['icon'])) return app
def __populateStyleCombo(self): """ Private method to populate the style combo box. """ curStyle = Preferences.getUI("Style") styles = QStyleFactory.keys() styles.sort() self.styleComboBox.addItem(self.trUtf8('System'), QVariant("System")) for style in styles: self.styleComboBox.addItem(style, QVariant(style)) currentIndex = self.styleComboBox.findData(QVariant(curStyle)) if currentIndex == -1: currentIndex = 0 self.styleComboBox.setCurrentIndex(currentIndex)
def loadSettings(self): s = QSettings() lang = s.value("language", "", type("")) try: index = self._langs.index(lang) except ValueError: index = 1 self.lang.setCurrentIndex(index) style = s.value("guistyle", "", type("")).lower() styles = [name.lower() for name in QStyleFactory.keys()] try: index = styles.index(style) + 1 except ValueError: index = 0 self.styleCombo.setCurrentIndex(index) self.systemIcons.setChecked(s.value("system_icons", True, bool)) self.splashScreen.setChecked(s.value("splash_screen", True, bool)) self.allowRemote.setChecked(remote.enabled())
def __init__(self, page): super(General, self).__init__(page) grid = QGridLayout() self.setLayout(grid) self.langLabel = QLabel() self.lang = QComboBox(currentIndexChanged=self.changed) grid.addWidget(self.langLabel, 0, 0) grid.addWidget(self.lang, 0, 1) self.styleLabel = QLabel() self.styleCombo = QComboBox(currentIndexChanged=self.changed) grid.addWidget(self.styleLabel, 1, 0) grid.addWidget(self.styleCombo, 1, 1) self.systemIcons = QCheckBox(toggled=self.changed) grid.addWidget(self.systemIcons, 2, 0, 1, 3) self.tabsClosable = QCheckBox(toggled=self.changed) grid.addWidget(self.tabsClosable, 3, 0, 1, 3) self.splashScreen = QCheckBox(toggled=self.changed) grid.addWidget(self.splashScreen, 4, 0, 1, 3) self.allowRemote = QCheckBox(toggled=self.changed) grid.addWidget(self.allowRemote, 5, 0, 1, 3) grid.setColumnStretch(2, 1) # fill in the language combo self._langs = ["C", ""] self.lang.addItems(('', '')) langnames = [(language_names.languageName(lang, lang), lang) for lang in po.available()] langnames.sort() for name, lang in langnames: self._langs.append(lang) self.lang.addItem(name) # fill in style combo self.styleCombo.addItem('') self.styleCombo.addItems(QStyleFactory.keys()) app.translateUI(self)
def __init__(self, page): super(General, self).__init__(page) grid = QGridLayout() self.setLayout(grid) self.langLabel = QLabel() self.lang = QComboBox(currentIndexChanged=self.changed) grid.addWidget(self.langLabel, 0, 0) grid.addWidget(self.lang, 0, 1) self.styleLabel = QLabel() self.styleCombo = QComboBox(currentIndexChanged=self.changed) grid.addWidget(self.styleLabel, 1, 0) grid.addWidget(self.styleCombo, 1, 1) self.systemIcons = QCheckBox(toggled=self.changed) grid.addWidget(self.systemIcons, 2, 0, 1, 3) self.splashScreen = QCheckBox(toggled=self.changed) grid.addWidget(self.splashScreen, 3, 0, 1, 3) self.allowRemote = QCheckBox(toggled=self.changed) grid.addWidget(self.allowRemote, 4, 0, 1, 3) grid.setColumnStretch(2, 1) # fill in the language combo self._langs = ["C", ""] self.lang.addItems(('', '')) langnames = [(language_names.languageName(lang, lang), lang) for lang in po.available()] langnames.sort() for name, lang in langnames: self._langs.append(lang) self.lang.addItem(name) # fill in style combo self.styleCombo.addItem('') self.styleCombo.addItems(QStyleFactory.keys()) app.translateUI(self)
def keys(): return [name.lower() for name in QStyleFactory.keys()]
def initVars(): ### Sections de la configuration EkdConfig.SECTIONS = { u"general" : _(u"Général"), u"animation_encodage_general" : _(u"Vidéo:Encodage général"), u"animation_encodage_web" : _(u"Vidéo:Encodage Web"), u"animation_encodage_hd" : _(u"Vidéo:Encodage HD"), u"animation_filtresvideo" : _(u"Vidéo:Filtres"), u"animation_montage_video_seul": _(u"Vidéo:Montage vidéo seulement"), u"animation_montage_video_et_audio": _(u"Vidéo:Montage vidéo et audio"), u"animation_decouper_une_video" : _(u"Vidéo:Découpage d'une vidéo"), u"animation_separer_audio_et_video": _(u"Vidéo:Séparation audio-vidéo"), u"animation_convertir_des_images_en_video" : _(u"Vidéo:Conversion d'images en vidéo"), u"animation_convertir_une_video_en_images" : _(u"Vidéo:Conversion d'une vidéo en images"), u"animation_reglages_divers": _(u"Vidéo:Nombre d'image par seconde"), u"animation_conversion_video_16_9_4_3" : _(u"Vidéo:Convertir une vidéo en 16/9 ou 4/3"), u"videoporamaconfig" : _(u"Vidéo:Diaporama d'images en vidéo"), u"image_planche-contact": _(u"Image:Planche contact"), u"image_changer_format": _(u"Image:Changer de format"), u"image_redimensionner" : _(u"Image:Redimension"), u"image_renommer": _(u"Image:Renommage d'images"), u"image_pour_le_web" : _(u"Image:Pour le Web "), u"image_multiplication": _(u"Image:Multiplication d'images"), u"image_filtres_image": _(u"Image:Filtres d'images"), u"image_masque_alpha_3d" : _(u"Image:Masque alpha 3D"), u"image_image_composite" : _(u"Image:Image composite"), u"image_transition_fondu" : _(u"Image:Transition fondu enchainé"), u"image_transition_spirale" : _(u"Image:Transition spirale"), u"son_musique_encodage": _(u"Audio:Transcodage audio"), u"son_joindre_multiple_fichier_audio": _(u"Audio:Joindre plusieurs fichiers audio"), u"son_decoupe_musiques_et_sons" : _(u"Audio:Découpe dans un fichier audio"), u"son_normaliser_convertir_musique_ou_son": _(u"Audio:Nomaliser et convertir un fichier audio") } ### Sections de la configuration EkdConfig.PROPERTIES = { u"charger_split": _(u"Charger la disposition des fenêtres"), u"display_mode": _(u"Mode d'affichage"), u"show_warning_messages": _(u"Voir les avertissements"), u"effacer_config": _(u"Réinitialiser la configuration"), u"boite_de_dialogue_de_fermeture": _(u"Confirmer la sauvegarde avant fermeture"), u'sauvegarder_parametres': _(u"Sauvegarder les paramêtres"), u"temporaire": _(u"Répertoire temporaire"), u"video_input_path": _(u"Répertoire de chargement des vidéos"), u"sound_input_path": _(u"Répertoire de chargement des sons"), u"image_input_path": _(u"Répertoire de chargement des images"), u"video_output_path": _(u"Répertoire de sauvegarde des vidéos"), u"sound_output_path": _(u"Répertoire de sauvegarde des sons"), u"image_output_path": _(u"Répertoire de sauvegarde des images"), u"show_hidden_files": _(u"Afficher les fichiers cachés"), u"imgmgkdir": _(u"Répertoire de ffmpeg"), u"soxdir": _(u"Répertoire de SoX"), u"mjpegtoolsdir": _(u"Répertoire de mjpegtools"), u"macromediaflashvideo": _(u"MacroMediaFlash"), u"codecmpeg1": _(u"Mpeg1"), u"codecwmv2": _(u"WMV2"), u"codecmpeg2": _(u"Mpeg2"), u"codecdivx4": _(u"Divx4"), u"codecmotionjpeg": _(u"Motion Jpeg"), u"codecoggtheora": _(u"Ogg Theora"), u"codec_vob_ffmpeg": _(u"FFMpeg"), u"mult_nbre_img_sec": _(u"Nombre d'images par seconde"), u"mult_duree_sec": _(u"Durée"), u"nbr_img_sec": _(u"Nombre d'images par seconde"), u"nbr_img_sec_mpeg1video": _(u"Nombre d'images par seconde"), u"increment": _(u"Incrémentation") , u"delai": _(u"Délai"), u"nombre_couleurs": _(u"Nomde de couleurs"), u"nombre_morceaux_horizontal": _(u"Nombre de morceaux horizontal"), u"nombre_morceaux_vertical": _(u"Nombre de morceaux vertical"), u"nouvelle_largeur": _(u"Nouvel largeur"), u"spin": _(u"Spin"), u"largeur_sans_ratio": _(u"Largeur sans ratio"), u"longueur_sans_ratio": _(u"Longueur sans ratio"), u"largeur_ratio": _(u"Largeur avec ratio"), u"valeur_bruit_luma": _(u"Valeur du bruit luma"), u"valeur_bruit_chroma": _(u"Valeur du bruit chroma"), u"luminosite": _(u"Luminosité"), u"contraste": _(u"Contraste"), u"decouper_largeur": _(u"Découper la largeur"), u"decouper_hauteur": _(u"Découper la hauteur"), u"decouper_position_largeur": _(u"Découper la position en largeur"), u"decouper_position_hauteur": _(u"Découper la position en hauteur"), u"couleur": _(u"Couleur"), u"saturation": _(u"Saturation"), u"flou_boite_rayon": _(u"Rayon du flou"), u"flou_boite_puissance": _(u"Puissance"), u"resolution_redim_largeur": _(u"Redimention largeur"), u"resolution_redim_hauteur": _(u"Redimention hauteur"), u"contraste_couleur": _(u"Contraste"), u"sepia": _(u"Sépia"), u"charcoal_traits_noirs": _(u"Traits noirs"), u"edge": _(u"Edge"), u"huile": _(u"Huile"), u"gamma": _(u"Gamma"), u"fonce_clair": _(u"Foncé clair"), u"liquidite": _(u"Liquidité"), u"bas_relief": _(u"Bas relief"), u"charcoal_crayon": _(u"Crayon charcoal"), u"spread_crayon": _(u"Crayon spread"), u"radius": _(u"Rayon"), u"sigma": _(u"Sigma"), u"precision_trait": _(u"Précision du trait"), u"largeur_trait": _(u"Largeur du trait"), u"seuillage_bas": _(u"Seuillage bas"), u"seuillage_haut": _(u"Seuillage haut"), u"intensite_du_trait": _(u"Intensité du trait"), u"reduction_couleur": _(u"Réduction de la couleur"), u"peinture_huile": _(u"Peinture à l'huile"), u"passage_image": _(u"Passage de l'image"), u"largeur_marge": _(u"Largeur de l'image"), u"nombre_images_largeur": _(u"Nombre d'images en largeur"), u"nombre_images_longueur": _(u"Nombre d'images en longueur"), u"time": _(u"Temps"), u"typet": _(u"Type transition"), u"speedt": _(u"Vitesse de transition"), u"qtstyle": _(u"Style QT"), u"codec": _(u"Codec"), u"bgcolor": _(u"Couleur de fond"), u"couleur_11": _(u"Couleur 11"), u"couleur_12": _(u"Couleur 12"), u"couleur_13": _(u"Couleur 13"), u"couleur_21": _(u"Couleur 21"), u"couleur_22": _(u"Couleur 22"), u"couleur_23": _(u"Couleur 23"), u"couleur_31": _(u"Couleur 31"), u"couleur_32": _(u"Couleur 32"), u"couleur_33": _(u"Couleur 33"), u"taille_mini_forme": _(u"Taille minimale"), u"taille_maxi_forme": _(u"Taille maximale"), u"coul_omb_lum_a_la_coul_11": _(u"Ombre Couleur 11"), u"coul_omb_lum_a_la_coul_12": _(u"Ombre Couleur 12"), u"coul_omb_lum_a_la_coul_21": _(u"Ombre Couleur 21"), u"coul_omb_lum_a_la_coul_22": _(u"Ombre Couleur 22"), u"coul_omb_lum_a_la_coul_31": _(u"Ombre Couleur 31"), u"coul_omb_lum_a_la_coul_32": _(u"Ombre Couleur 32"), u"coul_omb_lum_a_la_coul_41": _(u"Ombre Couleur 41"), u"coul_omb_lum_a_la_coul_42": _(u"Ombre Couleur 42"), u"coul_contour_couleur_00": _(u"Contour couleur 00"), u"coul_contour_couleur_11": _(u"Contour couleur 11"), u"coul_contour_couleur_12": _(u"Contour couleur 12"), u"coul_contour_couleur_13": _(u"Contour couleur 13"), u"coul_contour_couleur_21": _(u"Contour couleur 21"), u"coul_contour_couleur_22": _(u"Contour couleur 22"), u"coul_contour_couleur_23": _(u"Contour couleur 23"), u"coul_contour_couleur_31": _(u"Contour couleur 31"), u"coul_contour_couleur_32": _(u"Contour couleur 32"), u"coul_contour_couleur_33": _(u"Contour couleur 33"), u"coul_contour_couleur_41": _(u"Contour couleur 41"), u"coul_contour_couleur_42": _(u"Contour couleur 42"), u"coul_contour_couleur_43": _(u"Contour couleur 43"), u"ignore_case": _(u"Tri sensible à la casse"), u"interval_speed": _(u"Vitesse de lecture des images (ms)") } ## Chk ne peut pas être enlevé car utilisé dans vidéoporama, il faut supprimer les référence de cette ## option dans videoporama avant de pouvoir la retirer - Travail effectué -> chk retiré EkdConfig.PROPERTIES_MASK = [ u"sources", u"codec", u"chk", u"sauvegarder_parametres" ] if os.name == 'nt': EkdConfig.PROPERTIES_MASK.extend([u"imgmgkdir", u"mjpegtoolsdir", u"soxdir", u"show_hidden_files"]) EkdConfig.SECTION_MASK = [ u"animation_encodage_general", u"animation_encodage_web", u"animation_encodage_hd", u"animation_filtresvideo", u"animation_montage_video_seul", u"animation_montage_video_et_audio", u"animation_decouper_une_video" , u"animation_separer_audio_et_video", u"animation_convertir_des_images_en_video" , u"animation_convertir_une_video_en_images", u"animation_reglages_divers", u"animation_conversion_video_16_9_4_3", u"image_planche-contact", u"image_changer_format", u"image_redimensionner", u"image_renommer",u"image_image_composite", u"image_transition_fondu", u"image_transition_spirale", u"image_pour_le_web", u"image_multiplication", u"image_filtres_image", u"image_masque_alpha_3d", u"son_musique_encodage", u"son_joindre_multiple_fichier_audio", u"son_decoupe_musiques_et_sons", u"son_normaliser_convertir_musique_ou_son" ] EkdConfig.BOOLEAN_PROPERTIES = [ u"charger_split", u"effacer_config", u"boite_de_dialogue_de_fermeture", u'sauvegarder_parametres', u"show_hidden_files", u"show_warning_messages", u"ignore_case" ] EkdConfig.STYLE_PROPERTIES = { u"qtstyle": map(str, QStyleFactory.keys()), u"codec" : ['copie', 'avirawsanscompression', 'codec_dv_ffmpeg', 'codec_mov_ffmpeg', 'codec_hfyu_ffmpeg', 'codecmotionjpeg', 'codecoggtheora', 'codec_vob_ffmpeg', 'codecmpeg2', 'codech264mpeg4', 'codech264mpeg4_ext_h264', 'codecxvid', 'codecdivx4', 'codecmpeg1', 'macromediaflashvideo', 'codecwmv2', 'codec_3GP_ffmpeg', 'codec_AMV_ffmpeg'], u"display_mode": [ "auto", "1280x800", "1024x768", "1024x600", "800x600", "800x480"] } EkdConfig.CODEC_PROPERTIES = { u"speedt": [u'Très lent', u'Lent', u'Moyen', u'Moyen+', u'Rapide', u'Très rapide'], u"typet": [u'Aucun', u'Fondu', u'Apparaît', u'Disparaît', u'Slide', u'Cube', u'Pousser', u'Luma' ] } EkdConfig.PATH_PROPERTIES = [ u"temporaire", u"video_input_path", u"sound_input_path", u"image_input_path", u"video_output_path", u"sound_output_path", u"image_output_path", u"imgmgkdir", u"soxdir", u"mjpegtoolsdir"] EkdConfig.COLOR_PROPERTIES = [ u"bgcolor", u"couleur_11", u"couleur_12", u"couleur_13", u"couleur_21", u"couleur_22", u"couleur_23", u"couleur_31", u"couleur_32", u"couleur_33", u"taille_mini_forme", u"taille_maxi_forme", u"coul_omb_lum_a_la_coul_11", u"coul_omb_lum_a_la_coul_12", u"coul_omb_lum_a_la_coul_21", u"coul_omb_lum_a_la_coul_22", u"coul_omb_lum_a_la_coul_31", u"coul_omb_lum_a_la_coul_32", u"coul_omb_lum_a_la_coul_41", u"coul_omb_lum_a_la_coul_42", u"coul_contour_couleur_00", u"coul_contour_couleur_11", u"coul_contour_couleur_12", u"coul_contour_couleur_13", u"coul_contour_couleur_21", u"coul_contour_couleur_22", u"coul_contour_couleur_23", u"coul_contour_couleur_31", u"coul_contour_couleur_32", u"coul_contour_couleur_33", u"coul_contour_couleur_41", u"coul_contour_couleur_42", u"coul_contour_couleur_43"] EkdConfig.NUM_PROPERTIES = [ u"macromediaflashvideo", u"codecmpeg1", u"codecmpeg2", u"codecdivx4", u"codecwmv2", u"codecmotionjpeg", u"codecoggtheora", u"codec_vob_ffmpeg", u"mult_nbre_img_sec", u"mult_duree_sec", u"nbr_img_sec", u"nbr_img_sec_mpeg1video", u"increment", u"delai", u"nombre_couleurs", u"nombre_morceaux_horizontal", u"nombre_morceaux_vertical", u"nouvelle_largeur", u"spin", u"largeur_sans_ratio", u"longueur_sans_ratio", u"largeur_ratio", u"valeur_bruit_luma", u"valeur_bruit_chroma", u"luminosite", u"contraste", u"decouper_largeur", u"decouper_hauteur", u"decouper_position_largeur", u"decouper_position_hauteur", u"couleur", u"saturation", u"flou_boite_rayon", u"flou_boite_puissance", u"resolution_redim_largeur", u"resolution_redim_hauteur", u"contraste_couleur", u"sepia", u"charcoal_traits_noirs", u"edge", u"huile", u"gamma", u"fonce_clair", u"liquidite", u"bas_relief", u"charcoal_crayon", u"spread_crayon", u"radius", u"sigma", u"precision_trait", u"largeur_trait", u"seuillage_bas", u"seuillage_haut", u"intensite_du_trait", u"reduction_couleur", u"peinture_huile", u"passage_image", u"largeur_marge", u"nombre_images_largeur", u"nombre_images_longueur", u"time" ] EkdConfig.TIME_PROPERTIES = [ u"interval_speed" ]
def interpret(self, command): """Interprets command Returns turple (output, exitCode) """ print '~~~~~~~~~ interpret' ec = pConsoleCommand.NotFound output, ec = pConsoleCommand.interpret( command) parts = self.parseCommands( command ) if parts: cmd = parts.takeFirst() else: cmd = '' if ec != pConsoleCommand.NotFound : # nothing to do pass elif cmd == "ls" : if sys.platform.startswith('win'): cmd = "dir %s" % \ " ".join(pConsoleCommand.quotedStringList(parts)).trim() else: cmd = "dir %s" % " ".join( \ pConsoleCommand.quotedStringList(parts)).trimmed() process = QProcess() process.setProcessChannelMode( QProcess.MergedChannels ) process.start( cmd ) process.waitForStarted() process.waitForFinished() output = process.readAll().trimmed() ec = process.exitCode() elif cmd == "echo" : if parts: output = "\n".join(parts) ec = pConsoleCommand.Error else: output = pConsole.tr(console, "No argument given" ) ec = pConsoleCommand.Success elif cmd == "quit": output = pConsole.tr(console, "Quitting the application..." ) ec = pConsoleCommand.Success QTimer.singleShot(1000, qApp.quit() ) elif cmd == "style" : if parts.count() != 1 : output = pConsole.tr(console, "%s take only 1 parameter, %d given" % (cmd, len(parts)) ) ec = pConsoleCommand.Error elif parts[-1] == "list" : output = pConsole.tr(console, "Available styles:\n%s" % '\n'.join(QStyleFactory.keys()) ) ec = pConsoleCommand.Success else: styleExists = parts[-1].lower() in \ [key.lower() for key in QStyleFactory.keys()] if styleExists: output = pConsole.tr(console, "Setting style to %s..." % parts[-1]) self.mMainWindow.setCurrentStyle( parts[-1] ) ec = pConsoleCommand.Success else: output = pConsole.tr(console, "This style does not exists" ) ec = pConsoleCommand.Error return (output, ec)
def setup_page(self): newcb = self.create_checkbox # --- Interface interface_group = QGroupBox(_("Interface")) styles = [str(txt) for txt in QStyleFactory.keys()] choices = zip(styles, [style.lower() for style in styles]) style_combo = self.create_combobox(_('Qt windows style'), choices, 'windows_style', default=self.main.default_style) single_instance_box = newcb(_("Use a single instance"), 'single_instance', tip=_("Set this to open external<br> " "Python files in an already running " "instance (Requires a restart)")) vertdock_box = newcb(_("Vertical dockwidget title bars"), 'vertical_dockwidget_titlebars') verttabs_box = newcb(_("Vertical dockwidget tabs"), 'vertical_tabs') animated_box = newcb(_("Animated toolbars and dockwidgets"), 'animated_docks') tear_off_box = newcb(_("Tear off menus"), 'tear_off_menus', tip=_("Set this to detach any<br> " "menu from the main window")) margin_box = newcb(_("Custom dockwidget margin:"), 'use_custom_margin') margin_spin = self.create_spinbox("", "pixels", 'custom_margin', 0, 0, 30) self.connect(margin_box, SIGNAL("toggled(bool)"), margin_spin.setEnabled) margin_spin.setEnabled(self.get_option('use_custom_margin')) margins_layout = QHBoxLayout() margins_layout.addWidget(margin_box) margins_layout.addWidget(margin_spin) # Decide if it's possible to activate or not singie instance mode if os.name == 'nt': pywin32_present = programs.is_module_installed('win32api') if not pywin32_present: self.set_option("single_instance", False) single_instance_box.setEnabled(False) tip = _("This feature requires the pywin32 module.\n" "It seems you don't have it installed.") single_instance_box.setToolTip(tip) elif sys.platform == "darwin" and 'Spyder.app' in __file__: self.set_option("single_instance", True) single_instance_box.setEnabled(False) interface_layout = QVBoxLayout() interface_layout.addWidget(style_combo) interface_layout.addWidget(single_instance_box) interface_layout.addWidget(vertdock_box) interface_layout.addWidget(verttabs_box) interface_layout.addWidget(animated_box) interface_layout.addWidget(tear_off_box) interface_layout.addLayout(margins_layout) interface_group.setLayout(interface_layout) # --- Status bar sbar_group = QGroupBox(_("Status bar")) memory_box = newcb(_("Show memory usage every"), 'memory_usage/enable', tip=self.main.mem_status.toolTip()) memory_spin = self.create_spinbox("", " ms", 'memory_usage/timeout', min_=100, max_=1000000, step=100) self.connect(memory_box, SIGNAL("toggled(bool)"), memory_spin.setEnabled) memory_spin.setEnabled(self.get_option('memory_usage/enable')) memory_layout = QHBoxLayout() memory_layout.addWidget(memory_box) memory_layout.addWidget(memory_spin) memory_layout.setEnabled(self.main.mem_status.is_supported()) cpu_box = newcb(_("Show CPU usage every"), 'cpu_usage/enable', tip=self.main.cpu_status.toolTip()) cpu_spin = self.create_spinbox("", " ms", 'cpu_usage/timeout', min_=100, max_=1000000, step=100) self.connect(cpu_box, SIGNAL("toggled(bool)"), cpu_spin.setEnabled) cpu_spin.setEnabled(self.get_option('cpu_usage/enable')) cpu_layout = QHBoxLayout() cpu_layout.addWidget(cpu_box) cpu_layout.addWidget(cpu_spin) cpu_layout.setEnabled(self.main.cpu_status.is_supported()) sbar_layout = QVBoxLayout() sbar_layout.addLayout(memory_layout) sbar_layout.addLayout(cpu_layout) sbar_group.setLayout(sbar_layout) # --- Debugging debug_group = QGroupBox(_("Debugging")) popup_console_box = newcb(_("Pop up internal console when internal " "errors appear"), 'show_internal_console_if_traceback', default=True) debug_layout = QVBoxLayout() debug_layout.addWidget(popup_console_box) debug_group.setLayout(debug_layout) vlayout = QVBoxLayout() vlayout.addWidget(interface_group) vlayout.addWidget(sbar_group) vlayout.addWidget(debug_group) vlayout.addStretch(1) self.setLayout(vlayout)
def __init__(self): QMainWindow.__init__(self) self.setWindowTitle('%s %s' % (QApplication.applicationName(), QApplication.applicationVersion())); self.config = ConfigHandler(os.path.join(os.path.expanduser('~'), '.pywv/pywv.cfg'), self) self.setStyle(QStyleFactory.create(self.config.loadStyle())) if self.config.loadStyleSheet(): self.setStyleSheet(self.config.loadStyleSheet()) else: self.setStyleSheet("* {}") # without any stylesheet, windowstyles won't apply self.setDockOptions(QMainWindow.AnimatedDocks | QMainWindow.AllowNestedDocks | QMainWindow.AllowTabbedDocks | QMainWindow.VerticalTabs); # self.dummy = QWidget(self) self.setCentralWidget(QWidget(self)) self.pBar = QProgressBar(self) self.pBar.setRange(0, self.config.loadReloadInterval()) self.pBar.setFormat("%v Sekunden") if not self.config.loadAutoload(): self.pBar.hide() self.statusBar = QStatusBar(self) self.setStatusBar(self.statusBar) self.statusBar.addWidget(self.pBar) self.reloadTimer = QTimer(self); self.reloadTimer.setInterval(self.config.loadReloadInterval() * 1000) self.connect(self.reloadTimer, SIGNAL('timeout()'), self.reload_) if self.config.loadAutoload(): self.reloadTimer.start() self.autoloadStatusTimer = QTimer(self) self.autoloadStatusTimer.setInterval(1000) # 1 sec self.connect(self.autoloadStatusTimer, SIGNAL('timeout()'), self.onAutoloadStatus) self.autoloadStatusTimer.start() self.mAction = self.menuBar().addMenu(self.tr("&Action")) self.mAction.addAction(self.tr("&update"), self.reload_, QKeySequence('F5')) self.mAction.addAction(self.tr("e&xit"), self.onExit, 'Ctrl+Q') self.mStyle = QMenu(self.tr("&Style"), self) for s in list(QStyleFactory.keys()):# // fill in all available Styles self.mStyle.addAction(s) self.connect(self.mStyle, SIGNAL('triggered(QAction*)'), self.onStyleMenu) self.mOption = self.menuBar().addMenu(self.tr("&Options")) self.mOption.addAction(self.tr("reloadinterval") , self.onReloadTime , 'F8') self.mOption.addAction(self.tr("manage links") , self.onNewLink , 'F6') self.mOption.addSeparator() self.ontopAction = QAction(self.tr("always on &top") , self) self.showTrayAction = QAction(self.tr("show tray &icon") , self) self.closeToTrayAction = QAction(self.tr("close to &tray") , self) self.autoloadAction = QAction(self.tr("auto&load") , self) self.ontopAction.setCheckable(True) self.showTrayAction.setCheckable(True) self.closeToTrayAction.setCheckable(True) self.autoloadAction.setCheckable(True) self.showTrayAction.setChecked (self.config.loadShowTray() ) self.ontopAction.setChecked (self.config.loadOntop() ) self.closeToTrayAction.setChecked(self.config.loadCloseToTray()) self.autoloadAction.setChecked (self.config.loadAutoload() ) self.connect(self.ontopAction , SIGNAL('toggled(bool)') , self.onOntopAction) self.connect(self.showTrayAction , SIGNAL('toggled(bool)') , self.onShowTrayAction) self.connect(self.closeToTrayAction , SIGNAL('toggled(bool)') , self.onCloseToTrayAction) self.connect(self.autoloadAction , SIGNAL('toggled(bool)') , self.onAutoloadAction) self.mOption.addAction(self.ontopAction) self.mOption.addAction(self.showTrayAction) self.mOption.addAction(self.closeToTrayAction) self.mOption.addAction(self.autoloadAction) self.mOption.addSeparator() self.mOption.addMenu(self.mStyle) self.trayIcon = QSystemTrayIcon(QIcon(':/appicon'), self); self.trayMgr = TrayManager(self.config, self.trayIcon) self.connect(self.trayIcon, SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), self.onTrayIcon) if self.config.loadShowTray(): self.trayIcon.show() self.trayIconMenu = QMenu() self.trayIconMenu.addAction(self.tr("e&xit"), self.onExit) self.trayIcon.setContextMenu(self.trayIconMenu) self.mAbout = self.menuBar().addMenu(self.tr("&about")) self.mAbout.addAction(QApplication.applicationName(), self.onAboutAppAction) self.mAbout.addAction("Qt", self.onAboutQtAction) self.createWidgets() self.resize(self.config.loadWindowSize()) self.restoreState(self.config.loadWindowState()) if self.config.loadIsVisible(): self.show() self.reload_()