/*
* This file is part of NixNote
* Copyright 2009 Randy Baumgarte
*
* This file may be licensed under the terms of of the
* GNU General Public License Version 2 (the ``GPL'').
*
* Software distributed under the License is distributed
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the GPL for the specific language
* governing rights and limitations.
*
* You should have received a copy of the GPL along with this
* program. If not, go to http://www.gnu.org/licenses/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
package cx.fbn.nevernote.dialog;
import java.text.SimpleDateFormat;
import com.trolltech.qt.gui.QDialog;
import com.trolltech.qt.gui.QGridLayout;
import com.trolltech.qt.gui.QGroupBox;
import com.trolltech.qt.gui.QHBoxLayout;
import com.trolltech.qt.gui.QIcon;
import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QPushButton;
import cx.fbn.nevernote.Global;
public class AccountDialog extends QDialog {
String iconPath = new String("classpath:cx/fbn/nevernote/icons/");
private final QPushButton ok;
// Constructor
public AccountDialog() {
// Setup window layout, title, & icon
setWindowTitle(tr("Account Information"));
setWindowIcon(new QIcon(new QIcon(iconPath+"account.png")));
QGridLayout grid = new QGridLayout();
setLayout(grid);
QLabel premium;
if (Global.isPremium())
premium = new QLabel(tr("Premium"));
else
premium = new QLabel(tr("Free"));
String userName = Global.username;
// calculate the upload amount
Long uploadAmt = Global.getUploadAmount();
Long uploadLimit = Global.getUploadLimit();
Long uploadLimitEnd = Global.getUploadLimitEnd();
Long pct;
if (uploadLimit > 0)
pct = uploadAmt*100 / uploadLimit;
else
pct = new Long(0);
String unit = tr(" Bytes");
if (uploadAmt > 0) {
uploadAmt = uploadAmt/1024;
unit = tr(" KB");
}
if (uploadAmt >= 1024) {
uploadAmt = uploadAmt / 1024;
unit = tr(" MB");
}
if (uploadLimit > 0)
uploadLimit = uploadLimit/1024/1024;
//showing only date need
String fmt = Global.getDateFormat() /* + " " + Global.getTimeFormat()*/;
String dateTimeFormat = new String(fmt);
SimpleDateFormat simple = new SimpleDateFormat(dateTimeFormat);
StringBuilder endDate = new StringBuilder(simple.format(uploadLimitEnd));
// Show limits
QGroupBox limitGroup = new QGroupBox(tr("Account:"));
QGridLayout textGrid = new QGridLayout();
textGrid.addWidget(new QLabel(tr("User Name:")),1,1);
textGrid.addWidget(new QLabel(userName), 1,2);
textGrid.addWidget(new QLabel(tr("Account Type:")), 2,1);
textGrid.addWidget(premium, 2, 2);
textGrid.addWidget(new QLabel(tr("Limit:")), 3,1);
textGrid.addWidget(new QLabel(uploadLimit.toString() +" MB"),3,2);
textGrid.addWidget(new QLabel(tr("Uploaded In This Period:")), 4,1);
if (uploadAmt > 0)
textGrid.addWidget(new QLabel(uploadAmt.toString()+unit +" ("+pct+"%)"),4,2);
else
textGrid.addWidget(new QLabel(tr("Less than 1MB")),4,2);
textGrid.addWidget(new QLabel(tr("Current Cycle Ends:")), 5,1);
textGrid.addWidget(new QLabel(endDate.toString()),5,2);
limitGroup.setLayout(textGrid);
grid.addWidget(limitGroup, 1, 1);
//UserAttributes attrib = Global.getUserAttributes();
//QGridLayout attribGrid = new QGridLayout();
//QGroupBox attribGroup = new QGroupBox(tr("User Attributes"));
//attribGrid.addWidget(new QLabel(tr("Incoming Email:")), 1,1);
//String server = Global.getServer();
//if (server.startsWith("www."))
//server = server.substring(4);
//usually evernote mail is user@m.evernote.com
//server = "m."+server;
//attribGrid.addWidget(createIncomingEmailField(attrib.getIncomingEmailAddress()+"@"+server), 1,2);
//attribGroup.setLayout(attribGrid);
//grid.addWidget(attribGroup, 2,1);
QHBoxLayout buttonLayout = new QHBoxLayout();
ok = new QPushButton("OK");
ok.clicked.connect(this, "okPushed()");
buttonLayout.addStretch();
buttonLayout.addWidget(ok);
buttonLayout.addStretch();
grid.addLayout(buttonLayout,3,1);
}
// build a field used for the incomming email
/*
private QWidget createIncomingEmailField(String email){
QTextEdit emailTextEdit = new QTextEdit();
String emailLinkFormat="<a href=\"mailto:%1$s\">%1$s</a>";
String emailHtml = String.format(emailLinkFormat, email);
emailTextEdit.setLineWrapMode(LineWrapMode.NoWrap);
QTextDocument doc = new QTextDocument();
doc.setHtml(emailHtml);
doc.setMaximumBlockCount(1);
emailTextEdit.setDocument(doc);
emailTextEdit.setReadOnly(true);
//set background color as for disabled control
QPalette palette = new QPalette();
QColor backgroundColor = QApplication.palette().color(ColorRole.Window);
palette.setColor(ColorRole.Base, backgroundColor);
emailTextEdit.setAutoFillBackground(true);
emailTextEdit.setPalette(palette);
//remove frame borders
emailTextEdit.setFrameShape(QFrame.Shape.NoFrame);
//set height of emailTextEdit actually single line
QFontMetrics fontMetrics = emailTextEdit.fontMetrics();
//we also add some pixels to avoid showing scrollbars
int height = fontMetrics.height() + emailTextEdit.frameWidth()*2 + 8;
emailTextEdit.setFixedHeight(height);
return emailTextEdit;
}
*/
// OK button pushed, close the window
@SuppressWarnings("unused")
private void okPushed() {
this.close();
}
// return the actual OK button
public QPushButton getOkButton() {
return ok;
}
}