source: smplayer/vendor/0.8.2/src/defaultgui.cpp

Last change on this file was 137, checked in by Silvan Scherrer, 13 years ago

SMPlayer: updated vendor to 0.8.2

File size: 24.7 KB
Line 
1/* smplayer, GUI front-end for mplayer.
2 Copyright (C) 2006-2012 Ricardo Villalba <rvm@users.sourceforge.net>
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/
18
19#include "defaultgui.h"
20#include "helper.h"
21#include "colorutils.h"
22#include "core.h"
23#include "global.h"
24#include "widgetactions.h"
25#include "playlist.h"
26#include "mplayerwindow.h"
27#include "myaction.h"
28#include "images.h"
29#include "floatingwidget.h"
30#include "desktopinfo.h"
31#include "editabletoolbar.h"
32
33#if DOCK_PLAYLIST
34#include "playlistdock.h"
35#endif
36
37#include <QMenu>
38#include <QSettings>
39#include <QLabel>
40#include <QStatusBar>
41#include <QPushButton>
42#include <QToolButton>
43#include <QMenuBar>
44
45#define TOOLBAR_VERSION 1
46
47using namespace Global;
48
49DefaultGui::DefaultGui( QWidget * parent, Qt::WindowFlags flags )
50 : BaseGuiPlus( parent, flags )
51{
52 createStatusBar();
53
54 connect( this, SIGNAL(timeChanged(QString)),
55 this, SLOT(displayTime(QString)) );
56 connect( this, SIGNAL(frameChanged(int)),
57 this, SLOT(displayFrame(int)) );
58 connect( this, SIGNAL(ABMarkersChanged(int,int)),
59 this, SLOT(displayABSection(int,int)) );
60 connect( this, SIGNAL(videoInfoChanged(int,int,double)),
61 this, SLOT(displayVideoInfo(int,int,double)) );
62
63 connect( this, SIGNAL(cursorNearBottom(QPoint)),
64 this, SLOT(showFloatingControl(QPoint)) );
65 connect( this, SIGNAL(cursorNearTop(QPoint)),
66 this, SLOT(showFloatingMenu(QPoint)) );
67 connect( this, SIGNAL(cursorFarEdges()),
68 this, SLOT(hideFloatingControls()) );
69
70 createActions();
71 createMainToolBars();
72 createControlWidget();
73 createControlWidgetMini();
74 createFloatingControl();
75 createMenus();
76
77#if USE_CONFIGURABLE_TOOLBARS
78 connect( editToolbar1Act, SIGNAL(triggered()),
79 toolbar1, SLOT(edit()) );
80 connect( editControl1Act, SIGNAL(triggered()),
81 controlwidget, SLOT(edit()) );
82 connect( editControl2Act, SIGNAL(triggered()),
83 controlwidget_mini, SLOT(edit()) );
84 floating_control->toolbar()->takeAvailableActionsFrom(this);
85 connect( editFloatingControlAct, SIGNAL(triggered()),
86 floating_control->toolbar(), SLOT(edit()) );
87#endif
88
89 menuBar()->setObjectName("menubar");
90
91 retranslateStrings();
92
93 loadConfig();
94
95 //if (playlist_visible) showPlaylist(true);
96
97 if (pref->compact_mode) {
98 controlwidget->hide();
99 toolbar1->hide();
100 toolbar2->hide();
101 }
102}
103
104DefaultGui::~DefaultGui() {
105 saveConfig();
106}
107
108/*
109void DefaultGui::closeEvent( QCloseEvent * ) {
110 qDebug("DefaultGui::closeEvent");
111
112 //BaseGuiPlus::closeEvent(e);
113 qDebug("w: %d h: %d", width(), height() );
114}
115*/
116
117void DefaultGui::createActions() {
118 qDebug("DefaultGui::createActions");
119
120 timeslider_action = createTimeSliderAction(this);
121 timeslider_action->disable();
122
123 volumeslider_action = createVolumeSliderAction(this);
124 volumeslider_action->disable();
125
126 // Create the time label
127 time_label_action = new TimeLabelAction(this);
128 time_label_action->setObjectName("timelabel_action");
129
130#if MINI_ARROW_BUTTONS
131 QList<QAction*> rewind_actions;
132 rewind_actions << rewind1Act << rewind2Act << rewind3Act;
133 rewindbutton_action = new SeekingButton(rewind_actions, this);
134 rewindbutton_action->setObjectName("rewindbutton_action");
135
136 QList<QAction*> forward_actions;
137 forward_actions << forward1Act << forward2Act << forward3Act;
138 forwardbutton_action = new SeekingButton(forward_actions, this);
139 forwardbutton_action->setObjectName("forwardbutton_action");
140#endif
141
142 // Statusbar
143 viewVideoInfoAct = new MyAction(this, "toggle_video_info" );
144 viewVideoInfoAct->setCheckable(true);
145 connect( viewVideoInfoAct, SIGNAL(toggled(bool)),
146 video_info_display, SLOT(setVisible(bool)) );
147
148 viewFrameCounterAct = new MyAction( this, "toggle_frame_counter" );
149 viewFrameCounterAct->setCheckable( true );
150 connect( viewFrameCounterAct, SIGNAL(toggled(bool)),
151 frame_display, SLOT(setVisible(bool)) );
152
153#if USE_CONFIGURABLE_TOOLBARS
154 editToolbar1Act = new MyAction( this, "edit_main_toolbar" );
155 editControl1Act = new MyAction( this, "edit_control1" );
156 editControl2Act = new MyAction( this, "edit_control2" );
157 editFloatingControlAct = new MyAction( this, "edit_floating_control" );
158#endif
159}
160
161#if AUTODISABLE_ACTIONS
162void DefaultGui::enableActionsOnPlaying() {
163 qDebug("DefaultGui::enableActionsOnPlaying");
164 BaseGuiPlus::enableActionsOnPlaying();
165
166 timeslider_action->enable();
167 volumeslider_action->enable();
168}
169
170void DefaultGui::disableActionsOnStop() {
171 qDebug("DefaultGui::disableActionsOnStop");
172 BaseGuiPlus::disableActionsOnStop();
173
174 timeslider_action->disable();
175 volumeslider_action->disable();
176}
177#endif // AUTODISABLE_ACTIONS
178
179void DefaultGui::createMenus() {
180 toolbar_menu = new QMenu(this);
181 toolbar_menu->addAction(toolbar1->toggleViewAction());
182 toolbar_menu->addAction(toolbar2->toggleViewAction());
183#if USE_CONFIGURABLE_TOOLBARS
184 toolbar_menu->addSeparator();
185 toolbar_menu->addAction(editToolbar1Act);
186 toolbar_menu->addAction(editControl1Act);
187 toolbar_menu->addAction(editControl2Act);
188 toolbar_menu->addAction(editFloatingControlAct);
189#endif
190 optionsMenu->addSeparator();
191 optionsMenu->addMenu(toolbar_menu);
192
193 statusbar_menu = new QMenu(this);
194 statusbar_menu->addAction(viewVideoInfoAct);
195 statusbar_menu->addAction(viewFrameCounterAct);
196
197 optionsMenu->addMenu(statusbar_menu);
198}
199
200QMenu * DefaultGui::createPopupMenu() {
201 QMenu * m = new QMenu(this);
202#if USE_CONFIGURABLE_TOOLBARS
203 m->addAction(editToolbar1Act);
204 m->addAction(editControl1Act);
205 m->addAction(editControl2Act);
206 m->addAction(editFloatingControlAct);
207#else
208 m->addAction(toolbar1->toggleViewAction());
209 m->addAction(toolbar2->toggleViewAction());
210#endif
211 return m;
212}
213
214void DefaultGui::createMainToolBars() {
215 toolbar1 = new EditableToolbar( this );
216 toolbar1->setObjectName("toolbar1");
217 //toolbar1->setMovable(false);
218 addToolBar(Qt::TopToolBarArea, toolbar1);
219#if USE_CONFIGURABLE_TOOLBARS
220 QStringList toolbar1_actions;
221 toolbar1_actions << "open_file" << "open_url" << "favorites_menu" << "separator"
222 << "screenshot" << "separator" << "show_file_properties" << "show_playlist"
223 << "show_preferences" << "separator" << "play_prev" << "play_next";
224 toolbar1->setDefaultActions(toolbar1_actions);
225#else
226 toolbar1->addAction(openFileAct);
227 toolbar1->addAction(openDVDAct);
228 toolbar1->addAction(openURLAct);
229 toolbar1->addSeparator();
230 toolbar1->addAction(compactAct);
231 toolbar1->addAction(fullscreenAct);
232 toolbar1->addSeparator();
233 toolbar1->addAction(screenshotAct);
234 toolbar1->addSeparator();
235 toolbar1->addAction(showPropertiesAct);
236 toolbar1->addAction(showPlaylistAct);
237 toolbar1->addAction(showPreferencesAct);
238 toolbar1->addSeparator();
239 toolbar1->addAction(playPrevAct);
240 toolbar1->addAction(playNextAct);
241 // Test:
242 //toolbar1->addSeparator();
243 //toolbar1->addAction(timeslider_action);
244 //toolbar1->addAction(volumeslider_action);
245#endif
246
247 toolbar2 = new QToolBar( this );
248 toolbar2->setObjectName("toolbar2");
249 //toolbar2->setMovable(false);
250 addToolBar(Qt::TopToolBarArea, toolbar2);
251
252 select_audio = new QPushButton( this );
253 select_audio->setMenu( audiotrack_menu );
254 toolbar2->addWidget(select_audio);
255
256 select_subtitle = new QPushButton( this );
257 select_subtitle->setMenu( subtitlestrack_menu );
258 toolbar2->addWidget(select_subtitle);
259
260 /*
261 toolbar1->show();
262 toolbar2->show();
263 */
264
265 // Modify toolbars' actions
266 QAction *tba;
267 tba = toolbar1->toggleViewAction();
268 tba->setObjectName("show_main_toolbar");
269 tba->setShortcut(Qt::Key_F5);
270
271 tba = toolbar2->toggleViewAction();
272 tba->setObjectName("show_language_toolbar");
273 tba->setShortcut(Qt::Key_F6);
274}
275
276
277void DefaultGui::createControlWidgetMini() {
278 qDebug("DefaultGui::createControlWidgetMini");
279
280 controlwidget_mini = new EditableToolbar( this );
281 controlwidget_mini->setObjectName("controlwidget_mini");
282 //controlwidget_mini->setResizeEnabled(false);
283 controlwidget_mini->setMovable(false);
284 //addDockWindow(controlwidget_mini, Qt::DockBottom );
285 addToolBar(Qt::BottomToolBarArea, controlwidget_mini);
286
287#if USE_CONFIGURABLE_TOOLBARS
288 QStringList controlwidget_mini_actions;
289 controlwidget_mini_actions << "play_or_pause" << "stop" << "separator" << "rewind1" << "timeslider_action"
290 << "forward1" << "separator" << "mute" << "volumeslider_action";
291 controlwidget_mini->setDefaultActions(controlwidget_mini_actions);
292#else
293 controlwidget_mini->addAction(playOrPauseAct);
294 controlwidget_mini->addAction(stopAct);
295 controlwidget_mini->addSeparator();
296
297 controlwidget_mini->addAction(rewind1Act);
298
299 controlwidget_mini->addAction(timeslider_action);
300
301 controlwidget_mini->addAction(forward1Act);
302
303 controlwidget_mini->addSeparator();
304
305 controlwidget_mini->addAction(muteAct );
306
307 controlwidget_mini->addAction(volumeslider_action);
308#endif // USE_CONFIGURABLE_TOOLBARS
309
310 controlwidget_mini->hide();
311}
312
313void DefaultGui::createControlWidget() {
314 qDebug("DefaultGui::createControlWidget");
315
316 controlwidget = new EditableToolbar( this );
317 controlwidget->setObjectName("controlwidget");
318 //controlwidget->setResizeEnabled(false);
319 controlwidget->setMovable(false);
320 //addDockWindow(controlwidget, Qt::DockBottom );
321 addToolBar(Qt::BottomToolBarArea, controlwidget);
322
323#if USE_CONFIGURABLE_TOOLBARS
324 QStringList controlwidget_actions;
325 controlwidget_actions << "play" << "pause_and_frame_step" << "stop" << "separator";
326 #if MINI_ARROW_BUTTONS
327 controlwidget_actions << "rewindbutton_action";
328 #else
329 controlwidget_actions << "rewind3" << "rewind2" << "rewind1";
330 #endif
331 controlwidget_actions << "timeslider_action";
332 #if MINI_ARROW_BUTTONS
333 controlwidget_actions << "forwardbutton_action";
334 #else
335 controlwidget_actions << "forward1" << "forward2" << "forward3";
336 #endif
337 controlwidget_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action";
338 controlwidget->setDefaultActions(controlwidget_actions);
339#else
340 controlwidget->addAction(playAct);
341 controlwidget->addAction(pauseAndStepAct);
342 controlwidget->addAction(stopAct);
343
344 controlwidget->addSeparator();
345
346 #if MINI_ARROW_BUTTONS
347 controlwidget->addAction( rewindbutton_action );
348 #else
349 controlwidget->addAction(rewind3Act);
350 controlwidget->addAction(rewind2Act);
351 controlwidget->addAction(rewind1Act);
352 #endif
353
354 controlwidget->addAction(timeslider_action);
355
356 #if MINI_ARROW_BUTTONS
357 controlwidget->addAction( forwardbutton_action );
358 #else
359 controlwidget->addAction(forward1Act);
360 controlwidget->addAction(forward2Act);
361 controlwidget->addAction(forward3Act);
362 #endif
363
364 controlwidget->addSeparator();
365
366 controlwidget->addAction(fullscreenAct);
367 controlwidget->addAction(muteAct);
368
369 controlwidget->addAction(volumeslider_action);
370#endif // USE_CONFIGURABLE_TOOLBARS
371
372 /*
373 controlwidget->show();
374 */
375}
376
377void DefaultGui::createFloatingControl() {
378 // Floating control
379 floating_control = new FloatingWidget(this);
380
381#if USE_CONFIGURABLE_TOOLBARS
382 QStringList floatingcontrol_actions;
383 floatingcontrol_actions << "play" << "pause" << "stop" << "separator";
384 #if MINI_ARROW_BUTTONS
385 floatingcontrol_actions << "rewindbutton_action";
386 #else
387 floatingcontrol_actions << "rewind3" << "rewind2" << "rewind1";
388 #endif
389 floatingcontrol_actions << "timeslider_action";
390 #if MINI_ARROW_BUTTONS
391 floatingcontrol_actions << "forwardbutton_action";
392 #else
393 floatingcontrol_actions << "forward1" << "forward2" << "forward3";
394 #endif
395 floatingcontrol_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action" << "separator" << "timelabel_action";
396 floating_control->toolbar()->setDefaultActions(floatingcontrol_actions);
397#else
398 floating_control->toolbar()->addAction(playAct);
399 floating_control->toolbar()->addAction(pauseAct);
400 floating_control->toolbar()->addAction(stopAct);
401 floating_control->toolbar()->addSeparator();
402
403 #if MINI_ARROW_BUTTONS
404 floating_control->toolbar()->addAction( rewindbutton_action );
405 #else
406 floating_control->toolbar()->addAction(rewind3Act);
407 floating_control->toolbar()->addAction(rewind2Act);
408 floating_control->toolbar()->addAction(rewind1Act);
409 #endif
410
411 floating_control->toolbar()->addAction(timeslider_action);
412
413 #if MINI_ARROW_BUTTONS
414 floating_control->toolbar()->addAction( forwardbutton_action );
415 #else
416 floating_control->toolbar()->addAction(forward1Act);
417 floating_control->toolbar()->addAction(forward2Act);
418 floating_control->toolbar()->addAction(forward3Act);
419 #endif
420
421 floating_control->toolbar()->addSeparator();
422 floating_control->toolbar()->addAction(fullscreenAct);
423 floating_control->toolbar()->addAction(muteAct);
424 floating_control->toolbar()->addAction(volumeslider_action);
425 floating_control->toolbar()->addSeparator();
426 floating_control->toolbar()->addAction(time_label_action);
427#endif // USE_CONFIGURABLE_TOOLBARS
428
429#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
430 // To make work the ESC key (exit fullscreen) and Ctrl-X (close) in Windows and OS2
431 floating_control->addAction(exitFullscreenAct);
432 floating_control->addAction(exitAct);
433#endif
434
435#if !USE_CONFIGURABLE_TOOLBARS
436 floating_control->adjustSize();
437#endif
438}
439
440void DefaultGui::createStatusBar() {
441 qDebug("DefaultGui::createStatusBar");
442
443 time_display = new QLabel( statusBar() );
444 time_display->setObjectName("time_display");
445 time_display->setAlignment(Qt::AlignRight);
446 time_display->setFrameShape(QFrame::NoFrame);
447 time_display->setText(" 88:88:88 / 88:88:88 ");
448 time_display->setMinimumSize(time_display->sizeHint());
449
450 frame_display = new QLabel( statusBar() );
451 frame_display->setObjectName("frame_display");
452 frame_display->setAlignment(Qt::AlignRight);
453 frame_display->setFrameShape(QFrame::NoFrame);
454 frame_display->setText("88888888");
455 frame_display->setMinimumSize(frame_display->sizeHint());
456
457 ab_section_display = new QLabel( statusBar() );
458 ab_section_display->setObjectName("ab_section_display");
459 ab_section_display->setAlignment(Qt::AlignRight);
460 ab_section_display->setFrameShape(QFrame::NoFrame);
461// ab_section_display->setText("A:0:00:00 B:0:00:00");
462// ab_section_display->setMinimumSize(ab_section_display->sizeHint());
463
464 video_info_display = new QLabel( statusBar() );
465 video_info_display->setObjectName("video_info_display");
466 video_info_display->setAlignment(Qt::AlignRight);
467 video_info_display->setFrameShape(QFrame::NoFrame);
468
469 statusBar()->setAutoFillBackground(TRUE);
470
471 ColorUtils::setBackgroundColor( statusBar(), QColor(0,0,0) );
472 ColorUtils::setForegroundColor( statusBar(), QColor(255,255,255) );
473 ColorUtils::setBackgroundColor( time_display, QColor(0,0,0) );
474 ColorUtils::setForegroundColor( time_display, QColor(255,255,255) );
475 ColorUtils::setBackgroundColor( frame_display, QColor(0,0,0) );
476 ColorUtils::setForegroundColor( frame_display, QColor(255,255,255) );
477 ColorUtils::setBackgroundColor( ab_section_display, QColor(0,0,0) );
478 ColorUtils::setForegroundColor( ab_section_display, QColor(255,255,255) );
479 ColorUtils::setBackgroundColor( video_info_display, QColor(0,0,0) );
480 ColorUtils::setForegroundColor( video_info_display, QColor(255,255,255) );
481 statusBar()->setSizeGripEnabled(FALSE);
482
483 statusBar()->addPermanentWidget( video_info_display );
484 statusBar()->addPermanentWidget( ab_section_display );
485
486 statusBar()->showMessage( tr("Welcome to SMPlayer") );
487 statusBar()->addPermanentWidget( frame_display, 0 );
488 frame_display->setText( "0" );
489
490 statusBar()->addPermanentWidget( time_display, 0 );
491 time_display->setText(" 00:00:00 / 00:00:00 ");
492
493 time_display->show();
494 frame_display->hide();
495 ab_section_display->show();
496 video_info_display->hide();
497}
498
499void DefaultGui::retranslateStrings() {
500 BaseGuiPlus::retranslateStrings();
501
502 toolbar_menu->menuAction()->setText( tr("&Toolbars") );
503 toolbar_menu->menuAction()->setIcon( Images::icon("toolbars") );
504
505 statusbar_menu->menuAction()->setText( tr("Status&bar") );
506 statusbar_menu->menuAction()->setIcon( Images::icon("statusbar") );
507
508 toolbar1->setWindowTitle( tr("&Main toolbar") );
509 toolbar1->toggleViewAction()->setIcon(Images::icon("main_toolbar"));
510
511 toolbar2->setWindowTitle( tr("&Language toolbar") );
512 toolbar2->toggleViewAction()->setIcon(Images::icon("lang_toolbar"));
513
514 select_audio->setText( tr("Audio") );
515 select_subtitle->setText( tr("Subtitle") );
516
517 viewVideoInfoAct->change(Images::icon("view_video_info"), tr("&Video info") );
518 viewFrameCounterAct->change( Images::icon("frame_counter"), tr("&Frame counter") );
519
520#if USE_CONFIGURABLE_TOOLBARS
521 editToolbar1Act->change( tr("Edit main &toolbar") );
522 editControl1Act->change( tr("Edit &control bar") );
523 editControl2Act->change( tr("Edit m&ini control bar") );
524 editFloatingControlAct->change( tr("Edit &floating control") );
525#endif
526}
527
528
529void DefaultGui::displayTime(QString text) {
530 time_display->setText( text );
531 time_label_action->setText(text);
532}
533
534void DefaultGui::displayFrame(int frame) {
535 if (frame_display->isVisible()) {
536 frame_display->setNum( frame );
537 }
538}
539
540void DefaultGui::displayABSection(int secs_a, int secs_b) {
541 QString s;
542 if (secs_a > -1) s = tr("A:%1").arg(Helper::formatTime(secs_a));
543
544 if (secs_b > -1) {
545 if (!s.isEmpty()) s += " ";
546 s += tr("B:%1").arg(Helper::formatTime(secs_b));
547 }
548
549 ab_section_display->setText( s );
550
551 ab_section_display->setShown( !s.isEmpty() );
552}
553
554void DefaultGui::displayVideoInfo(int width, int height, double fps) {
555 video_info_display->setText(tr("%1x%2 %3 fps", "width + height + fps").arg(width).arg(height).arg(fps));
556}
557
558void DefaultGui::updateWidgets() {
559 qDebug("DefaultGui::updateWidgets");
560
561 BaseGuiPlus::updateWidgets();
562
563 panel->setFocus();
564}
565
566void DefaultGui::aboutToEnterFullscreen() {
567 qDebug("DefaultGui::aboutToEnterFullscreen");
568
569 BaseGuiPlus::aboutToEnterFullscreen();
570
571 // Save visibility of toolbars
572 fullscreen_toolbar1_was_visible = toolbar1->isVisible();
573 fullscreen_toolbar2_was_visible = toolbar2->isVisible();
574
575 if (!pref->compact_mode) {
576 //menuBar()->hide();
577 //statusBar()->hide();
578 controlwidget->hide();
579 controlwidget_mini->hide();
580 toolbar1->hide();
581 toolbar2->hide();
582 }
583}
584
585void DefaultGui::aboutToExitFullscreen() {
586 qDebug("DefaultGui::aboutToExitFullscreen");
587
588 BaseGuiPlus::aboutToExitFullscreen();
589
590 floating_control->hide();
591
592 if (!pref->compact_mode) {
593 //menuBar()->show();
594 //statusBar()->show();
595 controlwidget->show();
596
597 toolbar1->setVisible( fullscreen_toolbar1_was_visible );
598 toolbar2->setVisible( fullscreen_toolbar2_was_visible );
599 }
600}
601
602void DefaultGui::aboutToEnterCompactMode() {
603
604 BaseGuiPlus::aboutToEnterCompactMode();
605
606 // Save visibility of toolbars
607 compact_toolbar1_was_visible = toolbar1->isVisible();
608 compact_toolbar2_was_visible = toolbar2->isVisible();
609
610 //menuBar()->hide();
611 //statusBar()->hide();
612 controlwidget->hide();
613 controlwidget_mini->hide();
614 toolbar1->hide();
615 toolbar2->hide();
616}
617
618void DefaultGui::aboutToExitCompactMode() {
619 BaseGuiPlus::aboutToExitCompactMode();
620
621 //menuBar()->show();
622 //statusBar()->show();
623 controlwidget->show();
624
625 toolbar1->setVisible( compact_toolbar1_was_visible );
626 toolbar2->setVisible( compact_toolbar2_was_visible );
627
628 // Recheck size of controlwidget
629 resizeEvent( new QResizeEvent( size(), size() ) );
630}
631
632void DefaultGui::showFloatingControl(QPoint /*p*/) {
633 qDebug("DefaultGui::showFloatingControl");
634
635#if CONTROLWIDGET_OVER_VIDEO
636 if ((pref->compact_mode) && (!pref->fullscreen)) {
637 floating_control->setAnimated( false );
638 } else {
639 floating_control->setAnimated( pref->floating_control_animated );
640 }
641 floating_control->setMargin(pref->floating_control_margin);
642#ifndef Q_OS_WIN
643 floating_control->setBypassWindowManager(pref->bypass_window_manager);
644#endif
645 floating_control->showOver(panel, pref->floating_control_width);
646#else
647 if (!controlwidget->isVisible()) {
648 controlwidget->show();
649 }
650#endif
651}
652
653void DefaultGui::showFloatingMenu(QPoint /*p*/) {
654#if !CONTROLWIDGET_OVER_VIDEO
655 qDebug("DefaultGui::showFloatingMenu");
656
657 if (!menuBar()->isVisible())
658 menuBar()->show();
659#endif
660}
661
662void DefaultGui::hideFloatingControls() {
663 qDebug("DefaultGui::hideFloatingControls");
664
665#if CONTROLWIDGET_OVER_VIDEO
666 floating_control->hide();
667#else
668 if (controlwidget->isVisible())
669 controlwidget->hide();
670
671 if (menuBar()->isVisible())
672 menuBar()->hide();
673#endif
674}
675
676void DefaultGui::resizeEvent( QResizeEvent * ) {
677 /*
678 qDebug("defaultGui::resizeEvent");
679 qDebug(" controlwidget width: %d", controlwidget->width() );
680 qDebug(" controlwidget_mini width: %d", controlwidget_mini->width() );
681 */
682
683#if QT_VERSION < 0x040000
684#define LIMIT 470
685#else
686#define LIMIT 570
687#endif
688
689 if ( (controlwidget->isVisible()) && (width() < LIMIT) ) {
690 controlwidget->hide();
691 controlwidget_mini->show();
692 }
693 else
694 if ( (controlwidget_mini->isVisible()) && (width() > LIMIT) ) {
695 controlwidget_mini->hide();
696 controlwidget->show();
697 }
698}
699
700#if USE_MINIMUMSIZE
701QSize DefaultGui::minimumSizeHint() const {
702 return QSize(controlwidget_mini->sizeHint().width(), 0);
703}
704#endif
705
706
707void DefaultGui::saveConfig() {
708 qDebug("DefaultGui::saveConfig");
709
710 QSettings * set = settings;
711
712 set->beginGroup( "default_gui");
713
714 set->setValue("video_info", viewVideoInfoAct->isChecked());
715 set->setValue("frame_counter", viewFrameCounterAct->isChecked());
716
717 set->setValue("fullscreen_toolbar1_was_visible", fullscreen_toolbar1_was_visible);
718 set->setValue("fullscreen_toolbar2_was_visible", fullscreen_toolbar2_was_visible);
719 set->setValue("compact_toolbar1_was_visible", compact_toolbar1_was_visible);
720 set->setValue("compact_toolbar2_was_visible", compact_toolbar2_was_visible);
721
722 if (pref->save_window_size_on_exit) {
723 qDebug("DefaultGui::saveConfig: w: %d h: %d", width(), height());
724 set->setValue( "pos", pos() );
725 set->setValue( "size", size() );
726 }
727
728 set->setValue( "toolbars_state", saveState(Helper::qtVersion()) );
729
730#if USE_CONFIGURABLE_TOOLBARS
731 set->beginGroup( "actions" );
732 set->setValue("toolbar1", toolbar1->actionsToStringList() );
733 set->setValue("controlwidget", controlwidget->actionsToStringList() );
734 set->setValue("controlwidget_mini", controlwidget_mini->actionsToStringList() );
735 set->setValue("floating_control", floating_control->toolbar()->actionsToStringList() );
736 set->setValue("toolbar1_version", TOOLBAR_VERSION);
737 set->endGroup();
738#endif
739
740 set->endGroup();
741}
742
743void DefaultGui::loadConfig() {
744 qDebug("DefaultGui::loadConfig");
745
746 QSettings * set = settings;
747
748 set->beginGroup( "default_gui");
749
750 viewVideoInfoAct->setChecked(set->value("video_info", false).toBool());
751 viewFrameCounterAct->setChecked(set->value("frame_counter", false).toBool());
752
753 fullscreen_toolbar1_was_visible = set->value("fullscreen_toolbar1_was_visible", fullscreen_toolbar1_was_visible).toBool();
754 fullscreen_toolbar2_was_visible = set->value("fullscreen_toolbar2_was_visible", fullscreen_toolbar2_was_visible).toBool();
755 compact_toolbar1_was_visible = set->value("compact_toolbar1_was_visible", compact_toolbar1_was_visible).toBool();
756 compact_toolbar2_was_visible = set->value("compact_toolbar2_was_visible", compact_toolbar2_was_visible).toBool();
757
758 if (pref->save_window_size_on_exit) {
759 QPoint p = set->value("pos", pos()).toPoint();
760 QSize s = set->value("size", size()).toSize();
761
762 if ( (s.height() < 200) && (!pref->use_mplayer_window) ) {
763 s = pref->default_size;
764 }
765
766 move(p);
767 resize(s);
768
769 if (!DesktopInfo::isInsideScreen(this)) {
770 move(0,0);
771 qWarning("DefaultGui::loadConfig: window is outside of the screen, moved to 0x0");
772 }
773 }
774
775#if USE_CONFIGURABLE_TOOLBARS
776 set->beginGroup( "actions" );
777 int toolbar_version = set->value("toolbar1_version", 0).toInt();
778 if (toolbar_version >= TOOLBAR_VERSION) {
779 toolbar1->setActionsFromStringList( set->value("toolbar1", toolbar1->defaultActions()).toStringList() );
780 } else {
781 qDebug("DefaultGui::loadConfig: toolbar too old, loading default one");
782 toolbar1->setActionsFromStringList( toolbar1->defaultActions() );
783 }
784 controlwidget->setActionsFromStringList( set->value("controlwidget", controlwidget->defaultActions()).toStringList() );
785 controlwidget_mini->setActionsFromStringList( set->value("controlwidget_mini", controlwidget_mini->defaultActions()).toStringList() );
786 floating_control->toolbar()->setActionsFromStringList( set->value("floating_control", floating_control->toolbar()->defaultActions()).toStringList() );
787 floating_control->adjustSize();
788 set->endGroup();
789#endif
790
791 restoreState( set->value( "toolbars_state" ).toByteArray(), Helper::qtVersion() );
792
793#if DOCK_PLAYLIST
794 qDebug("DefaultGui::loadConfig: playlist visible: %d", playlistdock->isVisible());
795 qDebug("DefaultGui::loadConfig: playlist position: %d, %d", playlistdock->pos().x(), playlistdock->pos().y());
796 qDebug("DefaultGui::loadConfig: playlist size: %d x %d", playlistdock->size().width(), playlistdock->size().height());
797#endif
798
799 set->endGroup();
800
801 updateWidgets();
802}
803
804#include "moc_defaultgui.cpp"
Note: See TracBrowser for help on using the repository browser.