00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef DIARYCONTROLS_H
00028 #define DIARYCONTROLS_H
00029
00030
00031
00032 #include <QBitmap>
00033
00034 #include <QWidget>
00035 #include <QDate>
00036 #include <QFont>
00037 #include <QTextCharFormat>
00038 #include <QColor>
00039 #include <QString>
00040 #include <QIcon>
00041 #include <QPixmap>
00042 #include <QDir>
00043 #include <QGraphicsScene>
00044 #include <QGraphicsPixmapItem>
00045 #include <QErrorMessage>
00046 #include <QMouseEvent>
00047 #include <QScrollBar>
00048 #include "../../ui_DiaryControls.h"
00049 #include "../Dialogs/pictureSizeDialog.h"
00050
00051 class mplayerWidget;
00052 class DiaryEntryBackgroundMusicPlayer;
00053 class SystemTrayIntegration;
00054 class MyQTextBrowser;
00055 class mama_de_diary;
00056
00057 class DiaryControls: public QWidget
00058 {
00059 Q_OBJECT
00060 public:
00061 DiaryControls(QWidget *parent = NULL);
00062 virtual ~DiaryControls();
00063 Ui_DiaryControlsForm ui;
00064 void doUiUserSpecificInitializations(const QDir &userHomeDir);
00065 void setEditorTransparency(int redChannel, int greenChannel, int blueChannel, int alpha);
00066 bool event(QEvent *event);
00067 void UpdateMediaplayerPlaylistConnections(QDate *date = NULL, bool saveOldDaySpecificPlaylist = true);
00068 void SaveAll();
00069 void UpdateWindowIcons( const QIcon &appIcon );
00070 void HandleUiLanguageChange();
00071 void ConnectSystemTrayMenuSignals(SystemTrayIntegration *menu);
00072 void ConnectParentSignals(mama_de_diary *parent);
00073 void PrepareQuit();
00074 void DisableEditor();
00075 void EnableEditor();
00076 bool EditorEnabled();
00077 void RefreshDiaryEntryStoragePath( const QString &path );
00078 QString getMplayerVersion();
00079
00080 MyQTextBrowser* textEdit;
00081 QVBoxLayout *iVboxLayout;
00082 private:
00083 void reconstructNowPlaying();
00084 void toPlainText(QString &htmlText);
00085 QString takeShortClipFromText(int clipLength, const QString &sourceText, const QString &filterOfInterest);
00086 void constructEntrylist(const QString &filter);
00087 protected:
00088 void mouseMoveEvent ( QMouseEvent * event );
00089 private:
00090 PictureSizeDialog *iPictureSizeDlg;
00091 mplayerWidget *iMediaPlayer;
00092 DiaryEntryBackgroundMusicPlayer *iEntryBackgroundMusicPlayer;
00093
00094
00095 QList<QDate> iDayList;
00096 QDate iSelectedDate;
00097
00098 int iEntryListCurrentRow;
00099 QDir iUserHomeDir;
00100
00101 QGraphicsScene iTextEditorTransparencyScene;
00102 bool iFullscreenOn;
00103 QWidget *iParent;
00104
00105 QString iNowPlayingTitle;
00106 QString iNowPlayingArtist;
00107 QString iNowPlayingAlbum;
00108 QString iNowPlayingCreationDate;
00109 bool iCurrentEntryChanged;
00110 public slots:
00111
00112 void dayChanged(QDate date);
00113
00114 void entryListItemActivated( QListWidgetItem * item );
00115
00116 void entryListSearchFilterChanged( const QString &text );
00117
00118 void monthOrYearChanged(int year, int month);
00119 void insertPictureTriggered();
00120
00121 void fullscreenToggle();
00122
00123 void fontColorChange();
00124 void changeFont(QFont font);
00125 void changeFontSize(int size);
00126 void UnderlineToggle(bool val);
00127 void BoldToggle(bool val);
00128 void ItalicToggle(bool val);
00129
00130 void HandleCurrentCharFormatChange(QTextCharFormat format);
00131
00132 void editLocalPlaylistClicked();
00133
00134 void DaySpecificListGotContent();
00135 void DaySpecificListLostAllContent();
00136
00137 void gotNowPlayingTitle(const QString &title);
00138 void gotNowPlayingArtist(const QString &artist);
00139 void gotNowPlayingCreationDate(const QString &creationDate);
00140 void gotNowPlayingAlbum(const QString &album);
00141 void gotNowPlayingFilename(const QString &filename);
00142 void insertAndScalePicture(QString relativeFilename, int width, int height);
00143
00144 void entryTextChanged();
00145 signals:
00146 void setHTMLToEditor(const QString &text);
00147 void clearEditor();
00148 void setFont( const QFont &f);
00149 void setEditorTextColor ( const QColor & c );
00150 void giveFocusToTextEditor();
00151 void undoEditor();
00152 void updateCalendarFonts(int year, int month);
00153
00154 void isNavigationOnBoldArea(bool val);
00155 void isNavigationOnItalicArea(bool val);
00156 void isNavigationOnUnderlinedArea(bool val);
00157
00158 void updateFontSize( int size );
00159
00160 void updateFontCombobox( QFont font );
00161 void toggleFullscreen();
00162
00163 void mouseMovement(int x, int y);
00164 void insertPicture(QString relativeFilename, int width, int height);
00165
00166 void clearEntryList();
00167
00168 void setCalendarDate(const QDate &date);
00169
00170 void startPlayingEntryBackground();
00171 void stopPlayingEntryBackground();
00172 void setEntryBackgroundMusicPlayerVisible(bool visible);
00173 };
00174 #endif